@fluentui/react-charts 9.1.9 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/CHANGELOG.md +47 -2
  2. package/dist/index.d.ts +348 -11
  3. package/lib/AreaChart.js.map +1 -1
  4. package/lib/CartesianChart.js.map +1 -1
  5. package/lib/DeclarativeChart.js.map +1 -1
  6. package/lib/DonutChart.js.map +1 -1
  7. package/lib/FunnelChart.js +1 -0
  8. package/lib/FunnelChart.js.map +1 -0
  9. package/lib/GanttChart.js +1 -0
  10. package/lib/GanttChart.js.map +1 -0
  11. package/lib/GaugeChart.js.map +1 -1
  12. package/lib/GroupedVerticalBarChart.js.map +1 -1
  13. package/lib/HeatMapChart.js.map +1 -1
  14. package/lib/HorizontalBarChart.js.map +1 -1
  15. package/lib/HorizontalBarChartWithAxis.js.map +1 -1
  16. package/lib/Legends.js.map +1 -1
  17. package/lib/LineChart.js.map +1 -1
  18. package/lib/Popover.js.map +1 -1
  19. package/lib/ResponsiveContainer.js.map +1 -1
  20. package/lib/SankeyChart.js.map +1 -1
  21. package/lib/ScatterChart.js.map +1 -1
  22. package/lib/Sparkline.js.map +1 -1
  23. package/lib/VerticalBarChart.js.map +1 -1
  24. package/lib/VerticalStackedBarChart.js.map +1 -1
  25. package/lib/components/AreaChart/AreaChart.js +24 -8
  26. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  27. package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
  28. package/lib/components/AreaChart/index.js.map +1 -1
  29. package/lib/components/AreaChart/useAreaChartStyles.styles.js +1 -2
  30. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js +41 -0
  31. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -0
  32. package/lib/components/CommonComponents/CartesianChart.js +12 -8
  33. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  34. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  35. package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
  36. package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
  37. package/lib/components/CommonComponents/index.js.map +1 -1
  38. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +1 -2
  39. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js +128 -0
  40. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -0
  41. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +1 -2
  42. package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js +126 -0
  43. package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -0
  44. package/lib/components/DeclarativeChart/DeclarativeChart.js +15 -7
  45. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  46. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +44 -13
  47. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  48. package/lib/components/DeclarativeChart/imageExporter.js +1 -0
  49. package/lib/components/DeclarativeChart/imageExporter.js.map +1 -1
  50. package/lib/components/DeclarativeChart/index.js.map +1 -1
  51. package/lib/components/DonutChart/Arc/Arc.js +5 -5
  52. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  53. package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
  54. package/lib/components/DonutChart/Arc/index.js.map +1 -1
  55. package/lib/components/DonutChart/Arc/useArcStyles.styles.js +1 -2
  56. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js +44 -0
  57. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -0
  58. package/lib/components/DonutChart/DonutChart.js +18 -4
  59. package/lib/components/DonutChart/DonutChart.js.map +1 -1
  60. package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
  61. package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
  62. package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -1
  63. package/lib/components/DonutChart/Pie/index.js.map +1 -1
  64. package/lib/components/DonutChart/Pie/usePieStyles.styles.js +1 -2
  65. package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js +29 -0
  66. package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -0
  67. package/lib/components/DonutChart/index.js.map +1 -1
  68. package/lib/components/DonutChart/useDonutChartStyles.styles.js +1 -2
  69. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js +45 -0
  70. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -0
  71. package/lib/components/FunnelChart/FunnelChart.js +400 -0
  72. package/lib/components/FunnelChart/FunnelChart.js.map +1 -0
  73. package/lib/components/FunnelChart/FunnelChart.types.js +1 -0
  74. package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -0
  75. package/lib/components/FunnelChart/funnelGeometry.js +220 -0
  76. package/lib/components/FunnelChart/funnelGeometry.js.map +1 -0
  77. package/lib/components/FunnelChart/index.js +2 -0
  78. package/lib/components/FunnelChart/index.js.map +1 -0
  79. package/lib/components/FunnelChart/useFunnelChartStyles.styles.js +58 -0
  80. package/lib/components/FunnelChart/useFunnelChartStyles.styles.js.map +1 -0
  81. package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js +51 -0
  82. package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -0
  83. package/lib/components/GanttChart/GanttChart.js +547 -0
  84. package/lib/components/GanttChart/GanttChart.js.map +1 -0
  85. package/lib/components/GanttChart/GanttChart.types.js +4 -0
  86. package/lib/components/GanttChart/GanttChart.types.js.map +1 -0
  87. package/lib/components/GanttChart/index.js +2 -0
  88. package/lib/components/GanttChart/index.js.map +1 -0
  89. package/lib/components/GanttChart/useGanttChartStyles.styles.js +24 -0
  90. package/lib/components/GanttChart/useGanttChartStyles.styles.js.map +1 -0
  91. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js +23 -0
  92. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -0
  93. package/lib/components/GaugeChart/GaugeChart.js +9 -2
  94. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  95. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  96. package/lib/components/GaugeChart/index.js.map +1 -1
  97. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +1 -2
  98. package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js +142 -0
  99. package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -0
  100. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +77 -60
  101. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  102. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  103. package/lib/components/GroupedVerticalBarChart/index.js.map +1 -1
  104. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +1 -2
  105. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +53 -0
  106. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -0
  107. package/lib/components/HeatMapChart/HeatMapChart.js +11 -3
  108. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  109. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  110. package/lib/components/HeatMapChart/index.js.map +1 -1
  111. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +1 -2
  112. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +38 -0
  113. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -0
  114. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +23 -26
  115. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  116. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +5 -3
  117. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  118. package/lib/components/HorizontalBarChart/index.js.map +1 -1
  119. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +1 -2
  120. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +120 -0
  121. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -0
  122. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +18 -5
  123. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  124. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  125. package/lib/components/HorizontalBarChartWithAxis/index.js.map +1 -1
  126. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +1 -2
  127. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +39 -0
  128. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -0
  129. package/lib/components/Legends/Legends.js +28 -10
  130. package/lib/components/Legends/Legends.js.map +1 -1
  131. package/lib/components/Legends/Legends.types.js.map +1 -1
  132. package/lib/components/Legends/OverflowMenu.js.map +1 -1
  133. package/lib/components/Legends/index.js.map +1 -1
  134. package/lib/components/Legends/shape.js +3 -3
  135. package/lib/components/Legends/shape.js.map +1 -1
  136. package/lib/components/Legends/useLegendsStyles.styles.js +57 -14
  137. package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
  138. package/lib/components/Legends/useLegendsStyles.styles.raw.js +138 -0
  139. package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -0
  140. package/lib/components/LineChart/LineChart.js +23 -9
  141. package/lib/components/LineChart/LineChart.js.map +1 -1
  142. package/lib/components/LineChart/LineChart.types.js.map +1 -1
  143. package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  144. package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  145. package/lib/components/LineChart/eventAnnotation/Textbox.js +2 -1
  146. package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  147. package/lib/components/LineChart/index.js.map +1 -1
  148. package/lib/components/LineChart/useLineChartStyles.styles.js +1 -2
  149. package/lib/components/LineChart/useLineChartStyles.styles.raw.js +52 -0
  150. package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -0
  151. package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  152. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  153. package/lib/components/ResponsiveContainer/index.js.map +1 -1
  154. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +1 -2
  155. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js +28 -0
  156. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -0
  157. package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  158. package/lib/components/SankeyChart/SankeyChart.js +5 -1
  159. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  160. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  161. package/lib/components/SankeyChart/index.js.map +1 -1
  162. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +1 -2
  163. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js +77 -0
  164. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -0
  165. package/lib/components/ScatterChart/ScatterChart.js +19 -5
  166. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  167. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  168. package/lib/components/ScatterChart/index.js.map +1 -1
  169. package/lib/components/ScatterChart/useScatterChartStyles.styles.js +1 -2
  170. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js +43 -0
  171. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -0
  172. package/lib/components/Sparkline/Sparkline.js.map +1 -1
  173. package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
  174. package/lib/components/Sparkline/index.js.map +1 -1
  175. package/lib/components/Sparkline/useSparklineStyles.styles.js +1 -2
  176. package/lib/components/Sparkline/useSparklineStyles.styles.raw.js +30 -0
  177. package/lib/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -0
  178. package/lib/components/VerticalBarChart/VerticalBarChart.js +71 -31
  179. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  180. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  181. package/lib/components/VerticalBarChart/index.js.map +1 -1
  182. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +1 -2
  183. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +58 -0
  184. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -0
  185. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +26 -12
  186. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  187. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  188. package/lib/components/VerticalStackedBarChart/index.js.map +1 -1
  189. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +1 -2
  190. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +49 -0
  191. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -0
  192. package/lib/index.js +2 -0
  193. package/lib/index.js.map +1 -1
  194. package/lib/types/DataPoint.js +3 -1
  195. package/lib/types/DataPoint.js.map +1 -1
  196. package/lib/types/EventAnnotation.js.map +1 -1
  197. package/lib/types/LegendDataItem.js.map +1 -1
  198. package/lib/types/index.js.map +1 -1
  199. package/lib/utilities/FocusableTooltipText.js.map +1 -1
  200. package/lib/utilities/KeyCodes.js.map +1 -1
  201. package/lib/utilities/SVGTooltipText.js +2 -0
  202. package/lib/utilities/SVGTooltipText.js.map +1 -1
  203. package/lib/utilities/async-utils.js.map +1 -1
  204. package/lib/utilities/colors.js +12 -0
  205. package/lib/utilities/colors.js.map +1 -1
  206. package/lib/utilities/getWindow.js.map +1 -1
  207. package/lib/utilities/image-export-utils.js +256 -0
  208. package/lib/utilities/image-export-utils.js.map +1 -0
  209. package/lib/utilities/index.js.map +1 -1
  210. package/lib/utilities/overflow-utils.js.map +1 -1
  211. package/lib/utilities/string.js.map +1 -1
  212. package/lib/utilities/test-data.js +236 -0
  213. package/lib/utilities/test-data.js.map +1 -1
  214. package/lib/utilities/utilities.js +140 -27
  215. package/lib/utilities/utilities.js.map +1 -1
  216. package/lib/utilities/vbc-utils.js +2 -2
  217. package/lib/utilities/vbc-utils.js.map +1 -1
  218. package/lib-commonjs/AreaChart.js.map +1 -1
  219. package/lib-commonjs/CartesianChart.js.map +1 -1
  220. package/lib-commonjs/DeclarativeChart.js.map +1 -1
  221. package/lib-commonjs/DonutChart.js.map +1 -1
  222. package/lib-commonjs/FunnelChart.js +6 -0
  223. package/lib-commonjs/FunnelChart.js.map +1 -0
  224. package/lib-commonjs/GanttChart.js +6 -0
  225. package/lib-commonjs/GanttChart.js.map +1 -0
  226. package/lib-commonjs/GaugeChart.js.map +1 -1
  227. package/lib-commonjs/GroupedVerticalBarChart.js.map +1 -1
  228. package/lib-commonjs/HeatMapChart.js.map +1 -1
  229. package/lib-commonjs/HorizontalBarChart.js.map +1 -1
  230. package/lib-commonjs/HorizontalBarChartWithAxis.js.map +1 -1
  231. package/lib-commonjs/Legends.js.map +1 -1
  232. package/lib-commonjs/LineChart.js.map +1 -1
  233. package/lib-commonjs/Popover.js.map +1 -1
  234. package/lib-commonjs/ResponsiveContainer.js.map +1 -1
  235. package/lib-commonjs/SankeyChart.js.map +1 -1
  236. package/lib-commonjs/ScatterChart.js.map +1 -1
  237. package/lib-commonjs/Sparkline.js.map +1 -1
  238. package/lib-commonjs/VerticalBarChart.js.map +1 -1
  239. package/lib-commonjs/VerticalStackedBarChart.js.map +1 -1
  240. package/lib-commonjs/components/AreaChart/AreaChart.js +23 -7
  241. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  242. package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
  243. package/lib-commonjs/components/AreaChart/index.js.map +1 -1
  244. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +1 -1
  245. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
  246. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js +57 -0
  247. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -0
  248. package/lib-commonjs/components/CommonComponents/CartesianChart.js +11 -7
  249. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  250. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  251. package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
  252. package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
  253. package/lib-commonjs/components/CommonComponents/index.js.map +1 -1
  254. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +1 -1
  255. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  256. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js +142 -0
  257. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -0
  258. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +1 -1
  259. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
  260. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js +140 -0
  261. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -0
  262. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +14 -6
  263. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  264. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +47 -13
  265. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  266. package/lib-commonjs/components/DeclarativeChart/imageExporter.js +1 -0
  267. package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +1 -1
  268. package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -1
  269. package/lib-commonjs/components/DonutChart/Arc/Arc.js +5 -5
  270. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  271. package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
  272. package/lib-commonjs/components/DonutChart/Arc/index.js.map +1 -1
  273. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +1 -1
  274. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
  275. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js +58 -0
  276. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -0
  277. package/lib-commonjs/components/DonutChart/DonutChart.js +17 -3
  278. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
  279. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  280. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
  281. package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -1
  282. package/lib-commonjs/components/DonutChart/Pie/index.js.map +1 -1
  283. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +1 -1
  284. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -1
  285. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js +43 -0
  286. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -0
  287. package/lib-commonjs/components/DonutChart/index.js.map +1 -1
  288. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +1 -1
  289. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  290. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js +59 -0
  291. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -0
  292. package/lib-commonjs/components/FunnelChart/FunnelChart.js +411 -0
  293. package/lib-commonjs/components/FunnelChart/FunnelChart.js.map +1 -0
  294. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js +6 -0
  295. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -0
  296. package/lib-commonjs/components/FunnelChart/funnelGeometry.js +248 -0
  297. package/lib-commonjs/components/FunnelChart/funnelGeometry.js.map +1 -0
  298. package/lib-commonjs/components/FunnelChart/index.js +7 -0
  299. package/lib-commonjs/components/FunnelChart/index.js.map +1 -0
  300. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.js +79 -0
  301. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.js.map +1 -0
  302. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js +65 -0
  303. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -0
  304. package/lib-commonjs/components/GanttChart/GanttChart.js +558 -0
  305. package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -0
  306. package/lib-commonjs/components/GanttChart/GanttChart.types.js +7 -0
  307. package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -0
  308. package/lib-commonjs/components/GanttChart/index.js +7 -0
  309. package/lib-commonjs/components/GanttChart/index.js.map +1 -0
  310. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js +39 -0
  311. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js.map +1 -0
  312. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js +39 -0
  313. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -0
  314. package/lib-commonjs/components/GaugeChart/GaugeChart.js +9 -2
  315. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  316. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  317. package/lib-commonjs/components/GaugeChart/index.js.map +1 -1
  318. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +1 -1
  319. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  320. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js +160 -0
  321. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -0
  322. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +77 -60
  323. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  324. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  325. package/lib-commonjs/components/GroupedVerticalBarChart/index.js.map +1 -1
  326. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +1 -1
  327. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  328. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +69 -0
  329. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -0
  330. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +10 -2
  331. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  332. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  333. package/lib-commonjs/components/HeatMapChart/index.js.map +1 -1
  334. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +1 -1
  335. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
  336. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +56 -0
  337. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -0
  338. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +23 -26
  339. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  340. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +3 -3
  341. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  342. package/lib-commonjs/components/HorizontalBarChart/index.js.map +1 -1
  343. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +1 -1
  344. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
  345. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +134 -0
  346. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -0
  347. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +18 -5
  348. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  349. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  350. package/lib-commonjs/components/HorizontalBarChartWithAxis/index.js.map +1 -1
  351. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +1 -1
  352. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
  353. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +55 -0
  354. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -0
  355. package/lib-commonjs/components/Legends/Legends.js +28 -10
  356. package/lib-commonjs/components/Legends/Legends.js.map +1 -1
  357. package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
  358. package/lib-commonjs/components/Legends/OverflowMenu.js.map +1 -1
  359. package/lib-commonjs/components/Legends/index.js.map +1 -1
  360. package/lib-commonjs/components/Legends/shape.js +2 -2
  361. package/lib-commonjs/components/Legends/shape.js.map +1 -1
  362. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +101 -28
  363. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
  364. package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js +174 -0
  365. package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -0
  366. package/lib-commonjs/components/LineChart/LineChart.js +23 -9
  367. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  368. package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
  369. package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  370. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  371. package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js +2 -1
  372. package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  373. package/lib-commonjs/components/LineChart/index.js.map +1 -1
  374. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +1 -1
  375. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  376. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js +66 -0
  377. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -0
  378. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  379. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  380. package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -1
  381. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +1 -1
  382. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js.map +1 -1
  383. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js +46 -0
  384. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -0
  385. package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  386. package/lib-commonjs/components/SankeyChart/SankeyChart.js +5 -1
  387. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
  388. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  389. package/lib-commonjs/components/SankeyChart/index.js.map +1 -1
  390. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +1 -1
  391. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  392. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js +95 -0
  393. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -0
  394. package/lib-commonjs/components/ScatterChart/ScatterChart.js +18 -4
  395. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  396. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  397. package/lib-commonjs/components/ScatterChart/index.js.map +1 -1
  398. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +1 -1
  399. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  400. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js +57 -0
  401. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -0
  402. package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
  403. package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
  404. package/lib-commonjs/components/Sparkline/index.js.map +1 -1
  405. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +1 -1
  406. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js.map +1 -1
  407. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js +44 -0
  408. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -0
  409. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +71 -31
  410. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  411. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  412. package/lib-commonjs/components/VerticalBarChart/index.js.map +1 -1
  413. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +1 -1
  414. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  415. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +74 -0
  416. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -0
  417. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +26 -12
  418. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  419. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  420. package/lib-commonjs/components/VerticalStackedBarChart/index.js.map +1 -1
  421. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +1 -1
  422. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
  423. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +67 -0
  424. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -0
  425. package/lib-commonjs/index.js +2 -0
  426. package/lib-commonjs/index.js.map +1 -1
  427. package/lib-commonjs/types/DataPoint.js +3 -1
  428. package/lib-commonjs/types/DataPoint.js.map +1 -1
  429. package/lib-commonjs/types/EventAnnotation.js.map +1 -1
  430. package/lib-commonjs/types/LegendDataItem.js.map +1 -1
  431. package/lib-commonjs/types/index.js.map +1 -1
  432. package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -1
  433. package/lib-commonjs/utilities/KeyCodes.js.map +1 -1
  434. package/lib-commonjs/utilities/SVGTooltipText.js +2 -0
  435. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
  436. package/lib-commonjs/utilities/async-utils.js.map +1 -1
  437. package/lib-commonjs/utilities/colors.js +18 -0
  438. package/lib-commonjs/utilities/colors.js.map +1 -1
  439. package/lib-commonjs/utilities/getWindow.js.map +1 -1
  440. package/lib-commonjs/utilities/image-export-utils.js +274 -0
  441. package/lib-commonjs/utilities/image-export-utils.js.map +1 -0
  442. package/lib-commonjs/utilities/index.js.map +1 -1
  443. package/lib-commonjs/utilities/overflow-utils.js.map +1 -1
  444. package/lib-commonjs/utilities/string.js.map +1 -1
  445. package/lib-commonjs/utilities/test-data.js +245 -0
  446. package/lib-commonjs/utilities/test-data.js.map +1 -1
  447. package/lib-commonjs/utilities/utilities.js +142 -22
  448. package/lib-commonjs/utilities/utilities.js.map +1 -1
  449. package/lib-commonjs/utilities/vbc-utils.js +2 -2
  450. package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
  451. package/package.json +12 -22
@@ -1 +1 @@
1
- {"version":3,"sources":["GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfAxislabels,\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} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\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\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\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 const cartesianChartRef = React.useRef<Chart>(null);\n const Y_ORIGIN: number = 0;\n\n const [color, setColor] = React.useState<string>('');\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>('');\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 [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\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 React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\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 = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\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 = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-anyAdd 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 shiftX: number,\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 clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\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: StringAxis | NumericAxis,\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 xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\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 _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n 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 updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\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 pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\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 ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n const barGap = (VERTICAL_BAR_GAP / 2) * (index > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\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 // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n data-is-focusable={!props.hideTooltip && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={onBarHover.bind(null, pointData, singleSet)}\n onMouseMove={onBarHover.bind(null, pointData, singleSet)}\n onMouseOut={_onBarLeave}\n onFocus={onBarFocus.bind(null, pointData, singleSet, refIndexNumber)}\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 </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(pointData.data)\n : formatScientificLimitWidth(pointData.data)}\n </text>,\n );\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 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(keys)\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 = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\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 = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\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 = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\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 const margin2 = (totalWidth - reqWidth) / 2;\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 = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\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={legends}\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={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\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":["GroupedVerticalBarChart","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","React","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","useId","_emptyChartId","_useRtl","useRtl","_domainMargin","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useGroupedVerticalBarChartStyles_unstable","useEffect","areArraysEqual","useImperativeHandle","componentRef","chartContainer","current","_adjustProps","getBarWidth","barWidth","getScalePadding","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","getColorFromToken","DataVizPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","createElement","Legends","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","getTypeOfAxis","_getMinMaxOfYAxis","yAxisType","useSecondaryYScale","values","startValue","d3Min","endValue","d3Max","_getDomainNRangeValues","margins","width","chartType","isRTL","xAxisType","tickValues","shiftX","domainNRangeValue","XAxisTypes","NumericAxis","DateAxis","dStartValue","dEndValue","rStartValue","rEndValue","domainRangeOfXStringAxis","yMax","max","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","getAccessibleDataObject","tickParams","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","tempDataSet","Object","splice","datasetKey","yBarScale","xPoint","startColor","getNextColor","yBaseline","yPositiveStart","yNegativeStart","yPoint","barGap","height","abs","Fragment","rect","className","opacityChangeOnHover","data-is-focusable","hideTooltip","ref","e","fill","rx","onMouseOver","bind","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","formatScientificLimitWidth","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","d3Select","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","axis","tooltipOfAxislabels","g","transform","x0Axis","d3ScaleBand","domain","range","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","StringAxis","isScalePaddingDefined","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","step","calculateLongestLabelWidth","margin2","min","_isChartEmpty","item","_getChartTitle","chartTitle","CartesianChart","ChartTypes","getDomainNRangeValues","getMinMaxOfYAxis","createStringYAxis","legendBars","createYAxis","createNumericYAxis","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfAxislabels,\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} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n ImageExportOptions,\n LegendContainer,\n} from '../../index';\nimport { toImage } from '../../utilities/image-export-utils';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\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\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\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 const cartesianChartRef = React.useRef<Chart>(null);\n const Y_ORIGIN: number = 0;\n const _legendsRef = React.useRef<LegendContainer>(null);\n\n const [color, setColor] = React.useState<string>('');\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>('');\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 [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\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 React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n toImage: (opts?: ImageExportOptions): Promise<string> => {\n return toImage(cartesianChartRef.current?.chartContainer, _legendsRef.current?.toSVG, _useRtl, opts);\n },\n }),\n [],\n );\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 = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\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 = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\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 points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\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 shiftX: number,\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 clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\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: StringAxis | NumericAxis,\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 xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\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 _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n 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 updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\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 event: React.FocusEvent<SVGRectElement, Element>,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n let x = 0;\n let y = 0;\n\n const targetRect = (event.target as SVGRectElement).getBoundingClientRect();\n x = targetRect.left + targetRect.width / 2;\n y = targetRect.top + targetRect.height / 2;\n updatePosition(x, y);\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\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 ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n if (pointData) {\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n const barGap = (VERTICAL_BAR_GAP / 2) * (index > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\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 // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={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, refIndexNumber)}\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 </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(pointData.data)\n : formatScientificLimitWidth(pointData.data)}\n </text>,\n );\n }\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 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(keys)\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 = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\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 = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\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 = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\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 = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\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={legends}\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={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\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","select","d3Select","max","d3Max","min","d3Min","scaleBand","d3ScaleBand","useId","ChartTypes","getAccessibleDataObject","tooltipOfAxislabels","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","createNumericYAxis","domainRangeOfXStringAxis","createStringYAxis","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","CartesianChart","Legends","DataVizPalette","getColorFromToken","toImage","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","GroupedVerticalBarChart","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","_emptyChartId","_useRtl","_domainMargin","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","_legendsRef","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useEffect","useImperativeHandle","componentRef","chartContainer","current","opts","toSVG","_adjustProps","barWidth","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","legendRef","_xAxisType","_getMinMaxOfYAxis","yAxisType","useSecondaryYScale","values","startValue","endValue","_getDomainNRangeValues","margins","width","chartType","isRTL","xAxisType","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","dStartValue","dEndValue","rStartValue","rEndValue","yMax","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","tickParams","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","targetRect","target","getBoundingClientRect","height","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","tempDataSet","Object","splice","datasetKey","yBarScale","xPoint","startColor","yBaseline","yPositiveStart","yNegativeStart","yPoint","barGap","abs","Fragment","rect","className","opacityChangeOnHover","ref","e","fill","rx","onMouseOver","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","axis","g","transform","x0Axis","domain","range","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","StringAxis","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","margin2","Number","POSITIVE_INFINITY","hideTickOverlap","step","_isChartEmpty","item","_getChartTitle","chartTitle","getDomainNRangeValues","getMinMaxOfYAxis","legendBars","createYAxis","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\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/**\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":[],"rangeMappings":";;;","mappings":"AAuGA;;;CAGC"}
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\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/**\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":"AAuGA;;;CAGC,GACD,WAKC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './GroupedVerticalBarChart';\nexport * from './GroupedVerticalBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"rangeMappings":";;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA"}
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/index.ts"],"sourcesContent":["export * from './GroupedVerticalBarChart';\nexport * from './GroupedVerticalBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"mappings":";;;;;uBAAc,4BAA4B;uBAC5B,kCAAkC;uBAClC,oBAAoB"}
@@ -131,4 +131,4 @@ const useGroupedVerticalBarChartStyles_unstable = (props)=>{
131
131
  tooltip: (0, _react.mergeClasses)(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),
132
132
  barLabel: (0, _react.mergeClasses)(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )
133
133
  };
134
- }; //# sourceMappingURL=useGroupedVerticalBarChartStyles.styles.js.map
134
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["useGroupedVerticalBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const groupedVerticalBarChartClassNames = {\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};\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default'\n },\n tooltip: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalS),\n position: 'absolute',\n textAlign: 'center',\n top: tokens.spacingVerticalNone,\n fill: tokens.colorNeutralBackground1,\n background: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none',\n color: tokens.colorNeutralForeground1\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n }\n});\n/**\n * Apply styling to the GroupedVerticalBarChart slots based on the state\n */ export const useGroupedVerticalBarChartStyles_unstable = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(groupedVerticalBarChartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/ ),\n tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),\n barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )\n };\n};\n"],"names":["groupedVerticalBarChartClassNames","useGroupedVerticalBarChartStyles_unstable","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","shapeStyles","chartWrapper","svgTooltip","chart","useStyles","__styles","Bceei9c","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","fsow6f","Bhzewxz","Bkfmm31","Bgh53k4","B2eet1l","De3pzq","Bcmaq0h","gk0gix","B20660r","B8a6bjv","Bpptf2m","e5kdtc","Bkjc3bi","ayd6f0","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","sj55zd","Bvjb7m6","d","p","props","baseStyles","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAEaA,iCAAiC;eAAjCA;;IA2CIC,yCAAyC;eAAzCA;;;uBA7CoC;AAE9C,MAAMD,oCAAoC;IAC7CE,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;AACX;AACA,MAAMC,YAAS,WAAA,GAAGC,IAAAA,eAAA,EAAA;IAAAhB,sBAAA;QAAAiB,SAAA;IAAA;IAAAhB,SAAA;QAAAiB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,SAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;IAAA;IAAA/C,UAAA;QAAAgB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAU,SAAA;QAAAmB,SAAA;IAAA;AAAA,GAAA;IAAAC,GAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,GAAA,CAAA;YAAA;SAAA;QAAA;YAAA;YAAA;gBAAAA,GAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA;AA0BP,MAAMrD,4CAA6CsD,CAAAA;IAC1D,MAAMC,aAAavC;IACnB,OAAO;QACHf,sBAAsBuD,IAAAA,mBAAY,EAACzD,kCAAkCE,oBAAoB,EAAEsD,WAAWtD,oBAAoB,CAAC,oCAAA;QAC3HC,SAASsD,IAAAA,mBAAY,EAACzD,kCAAkCG,OAAO,EAAEqD,WAAWrD,OAAO,CAAC,uBAAA;QACpFC,UAAUqD,IAAAA,mBAAY,EAACzD,kCAAkCI,QAAQ,EAAEoD,WAAWpD,QAAQ,CAAC,wBAAA;IAC3F;AACJ"}
1
+ {"version":3,"sources":["useGroupedVerticalBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const groupedVerticalBarChartClassNames = {\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};\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default'\n },\n tooltip: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalS),\n position: 'absolute',\n textAlign: 'center',\n top: tokens.spacingVerticalNone,\n fill: tokens.colorNeutralBackground1,\n background: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none',\n color: tokens.colorNeutralForeground1\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n }\n});\n/**\n * Apply styling to the GroupedVerticalBarChart slots based on the state\n */ export const useGroupedVerticalBarChartStyles_unstable = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(groupedVerticalBarChartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/ ),\n tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),\n barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )\n };\n};\n"],"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","groupedVerticalBarChartClassNames","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","shapeStyles","chartWrapper","svgTooltip","chart","useStyles","Bceei9c","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","fsow6f","Bhzewxz","Bkfmm31","Bgh53k4","B2eet1l","De3pzq","Bcmaq0h","gk0gix","B20660r","B8a6bjv","Bpptf2m","e5kdtc","Bkjc3bi","ayd6f0","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","sj55zd","Bvjb7m6","d","p","useGroupedVerticalBarChartStyles_unstable","props","baseStyles"],"mappings":";;;;;;;;;;;IAEaK,iCAAiC;;;6CA2CY;;;;uBA7CL,gBAAgB;AAE9D,0CAA0C;IAC7CC,oBAAoB,EAAE,gCAAgC;IACtDC,OAAO,EAAE,mBAAmB;IAC5BC,QAAQ,EAAE,oBAAoB;IAC9BC,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE,EAAE;IACTC,KAAK,EAAE,EAAE;IACTC,eAAe,EAAE,EAAE;IACnBC,KAAK,EAAE,EAAE;IACTC,kBAAkB,EAAE,EAAE;IACtBC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE,EAAE;IACdC,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,EAAE;IACdC,KAAK,EAAE;AACX,CAAC;AACD,MAAMC,SAAS,GAAA,WAAA,OAAGrB,eAAA,EAAA;IAAAM,oBAAA,EAAA;QAAAgB,OAAA,EAAA;IAAA;IAAAf,OAAA,EAAA;QAAAgB,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;YAAA;YAAA;SAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;YAAA;YAAA;SAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;IAAA9C,QAAA,EAAA;QAAAe,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAU,OAAA,EAAA;QAAAmB,OAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;YAAA;YAAA;gBAAAA,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA,CAuBjB,CAAC;AAGS,MAAMC,6CAA6CC,KAAK,IAAG;IAClE,MAAMC,UAAU,GAAGvC,SAAS,CAAC,CAAC;IAC9B,OAAO;QACHf,oBAAoB,MAAEL,mBAAY,EAACI,iCAAiC,CAACC,oBAAoB,EAAEsD,UAAU,CAACtD,oBAAoB,CAAC,oCAAA,EAAuC,CAAC;QACnKC,OAAO,MAAEN,mBAAY,EAACI,iCAAiC,CAACE,OAAO,EAAEqD,UAAU,CAACrD,OAAO,CAAC,uBAAA,EAA0B,CAAC;QAC/GC,QAAQ,MAAEP,mBAAY,EAACI,iCAAiC,CAACG,QAAQ,EAAEoD,UAAU,CAACpD,QAAQ,CAAC,wBAAA,EAA2B;IACtH,CAAC;AACL,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ groupedVerticalBarChartClassNames: function() {
13
+ return groupedVerticalBarChartClassNames;
14
+ },
15
+ useGroupedVerticalBarChartStyles_unstable: function() {
16
+ return useGroupedVerticalBarChartStyles_unstable;
17
+ }
18
+ });
19
+ const _react = require("@griffel/react");
20
+ const _reacttheme = require("@fluentui/react-theme");
21
+ const groupedVerticalBarChartClassNames = {
22
+ opacityChangeOnHover: 'fui-gvbc**opacityChangeOnHover',
23
+ tooltip: 'fui-gvbc**tooltip',
24
+ barLabel: 'fui-gvbc**barLabel',
25
+ root: '',
26
+ xAxis: '',
27
+ yAxis: '',
28
+ legendContainer: '',
29
+ hover: '',
30
+ descriptionMessage: '',
31
+ axisTitle: '',
32
+ chartTitle: '',
33
+ shapeStyles: '',
34
+ chartWrapper: '',
35
+ svgTooltip: '',
36
+ chart: ''
37
+ };
38
+ const useStyles = (0, _react.makeStyles)({
39
+ opacityChangeOnHover: {
40
+ cursor: 'default'
41
+ },
42
+ tooltip: {
43
+ ..._reacttheme.typographyStyles.body1,
44
+ display: 'flex',
45
+ flexDirection: 'column',
46
+ ..._react.shorthands.padding(_reacttheme.tokens.spacingHorizontalS),
47
+ position: 'absolute',
48
+ textAlign: 'center',
49
+ top: _reacttheme.tokens.spacingVerticalNone,
50
+ fill: _reacttheme.tokens.colorNeutralBackground1,
51
+ background: _reacttheme.tokens.colorNeutralBackground1,
52
+ borderRadius: _reacttheme.tokens.borderRadiusSmall,
53
+ pointerEvents: 'none',
54
+ color: _reacttheme.tokens.colorNeutralForeground1
55
+ },
56
+ barLabel: {
57
+ ..._reacttheme.typographyStyles.caption1Strong,
58
+ fill: _reacttheme.tokens.colorNeutralForeground1,
59
+ forcedColorAdjust: 'auto'
60
+ }
61
+ });
62
+ const useGroupedVerticalBarChartStyles_unstable = (props)=>{
63
+ const baseStyles = useStyles();
64
+ return {
65
+ opacityChangeOnHover: (0, _react.mergeClasses)(groupedVerticalBarChartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/ ),
66
+ tooltip: (0, _react.mergeClasses)(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),
67
+ barLabel: (0, _react.mergeClasses)(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )
68
+ };
69
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { GroupedVerticalBarChartProps, GroupedVerticalBarChartStyles } from '../../index';\nimport { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\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};\n\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default',\n },\n tooltip: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalS),\n position: 'absolute',\n textAlign: 'center',\n top: tokens.spacingVerticalNone,\n fill: tokens.colorNeutralBackground1, //Check this\n background: tokens.colorNeutralBackground1, //Fill or background\n borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none',\n color: tokens.colorNeutralForeground1, //Confirm this\n },\n barLabel: {\n ...typographyStyles.caption1Strong, // Confirm styles\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\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","shorthands","tokens","typographyStyles","groupedVerticalBarChartClassNames","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","shapeStyles","chartWrapper","svgTooltip","chart","useStyles","cursor","body1","display","flexDirection","padding","spacingHorizontalS","position","textAlign","top","spacingVerticalNone","fill","colorNeutralBackground1","background","borderRadius","borderRadiusSmall","pointerEvents","color","colorNeutralForeground1","caption1Strong","forcedColorAdjust","useGroupedVerticalBarChartStyles_unstable","props","baseStyles"],"mappings":";;;;;;;;;;;IAKaK,iCAAAA;;;IA8CAqC,yCAAAA;;;;uBAnDwC,iBAAiB;4BAG7B,wBAAwB;AAE1D,0CAAyF;IAC9FpC,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;AACT,EAAE;AAEF,MAAMC,gBAAYrB,iBAAAA,EAAW;IAC3BM,sBAAsB;QACpBgB,QAAQ;IACV;IACAf,SAAS;QACP,GAAGH,4BAAAA,CAAiBmB,KAAK;QACzBC,SAAS;QACTC,eAAe;QACf,GAAGvB,iBAAAA,CAAWwB,OAAO,CAACvB,kBAAAA,CAAOwB,kBAAkB,CAAC;QAChDC,UAAU;QACVC,WAAW;QACXC,KAAK3B,kBAAAA,CAAO4B,mBAAmB;QAC/BC,MAAM7B,kBAAAA,CAAO8B,uBAAuB;QACpCC,YAAY/B,kBAAAA,CAAO8B,uBAAuB;QAC1CE,cAAchC,kBAAAA,CAAOiC,iBAAiB;QACtCC,eAAe;QACfC,OAAOnC,kBAAAA,CAAOoC,uBAAuB;IACvC;IACA/B,UAAU;QACR,GAAGJ,4BAAAA,CAAiBoC,cAAc;QAClCR,MAAM7B,kBAAAA,CAAOoC,uBAAuB;QACpCE,mBAAmB;IACrB;AACF;AAKO,kDAAkD,CACvDE;IAEA,MAAMC,aAAavB;IAEnB,OAAO;QACLf,0BAAsBL,mBAAAA,EACpBI,kCAAkCC,oBAAoB,EACtDsC,WAAWtC,oBAAoB,CAAC,oCAAoC;QAEtEC,aAASN,mBAAAA,EAAaI,kCAAkCE,OAAO,EAAEqC,WAAWrC,OAAO,CAAC,uBAAuB;QAC3GC,cAAUP,mBAAAA,EAAaI,kCAAkCG,QAAQ,EAAEoC,WAAWpC,QAAQ,CAAC,wBAAwB;IACjH;AACF,EAAE"}
@@ -20,6 +20,7 @@ const _index2 = require("../Legends/index");
20
20
  const _d3scale = require("d3-scale");
21
21
  const _d3format = require("d3-format");
22
22
  const _d3timeformat = require("d3-time-format");
23
+ const _imageexportutils = require("../../utilities/image-export-utils");
23
24
  const HeatMapChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
24
25
  const classes = (0, _useHeatMapChartStylesstyles.useHeatMapChartStyles)(props);
25
26
  const _stringXAxisDataPoints = _react.useRef([]);
@@ -37,6 +38,8 @@ const HeatMapChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
37
38
  const _emptyChartId = (0, _reactutilities.useId)('_HeatMap_empty');
38
39
  const _margins = _react.useRef({});
39
40
  const cartesianChartRef = _react.useRef(null);
41
+ const _legendsRef = _react.useRef(null);
42
+ const _isRtl = (0, _index.useRtl)();
40
43
  const [selectedLegend, setSelectedLegend] = _react.useState('');
41
44
  const [activeLegend, setActiveLegend] = _react.useState('');
42
45
  const [isPopoverOpen, setPopoverOpen] = _react.useState(false);
@@ -54,7 +57,11 @@ const HeatMapChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
54
57
  var _cartesianChartRef_current;
55
58
  var _cartesianChartRef_current_chartContainer;
56
59
  return {
57
- chartContainer: (_cartesianChartRef_current_chartContainer = (_cartesianChartRef_current = cartesianChartRef.current) === null || _cartesianChartRef_current === void 0 ? void 0 : _cartesianChartRef_current.chartContainer) !== null && _cartesianChartRef_current_chartContainer !== void 0 ? _cartesianChartRef_current_chartContainer : null
60
+ chartContainer: (_cartesianChartRef_current_chartContainer = (_cartesianChartRef_current = cartesianChartRef.current) === null || _cartesianChartRef_current === void 0 ? void 0 : _cartesianChartRef_current.chartContainer) !== null && _cartesianChartRef_current_chartContainer !== void 0 ? _cartesianChartRef_current_chartContainer : null,
61
+ toImage: (opts)=>{
62
+ var _cartesianChartRef_current, _legendsRef_current;
63
+ return (0, _imageexportutils.toImage)((_cartesianChartRef_current = cartesianChartRef.current) === null || _cartesianChartRef_current === void 0 ? void 0 : _cartesianChartRef_current.chartContainer, (_legendsRef_current = _legendsRef.current) === null || _legendsRef_current === void 0 ? void 0 : _legendsRef_current.toSVG, _isRtl, opts);
64
+ }
58
65
  };
59
66
  }, []);
60
67
  function _getMinMaxOfYAxis() {
@@ -274,7 +281,8 @@ const HeatMapChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
274
281
  });
275
282
  return /*#__PURE__*/ _react.createElement(_index2.Legends, {
276
283
  ...legendProps,
277
- legends: legends
284
+ legends: legends,
285
+ legendRef: _legendsRef
278
286
  });
279
287
  };
280
288
  const _getColorScale = ()=>{