@fluentui/react-charts 9.1.10 → 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 (405) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/dist/index.d.ts +39 -3
  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.map +1 -1
  8. package/lib/GanttChart.js.map +1 -1
  9. package/lib/GaugeChart.js.map +1 -1
  10. package/lib/GroupedVerticalBarChart.js.map +1 -1
  11. package/lib/HeatMapChart.js.map +1 -1
  12. package/lib/HorizontalBarChart.js.map +1 -1
  13. package/lib/HorizontalBarChartWithAxis.js.map +1 -1
  14. package/lib/Legends.js.map +1 -1
  15. package/lib/LineChart.js.map +1 -1
  16. package/lib/Popover.js.map +1 -1
  17. package/lib/ResponsiveContainer.js.map +1 -1
  18. package/lib/SankeyChart.js.map +1 -1
  19. package/lib/ScatterChart.js.map +1 -1
  20. package/lib/Sparkline.js.map +1 -1
  21. package/lib/VerticalBarChart.js.map +1 -1
  22. package/lib/VerticalStackedBarChart.js.map +1 -1
  23. package/lib/components/AreaChart/AreaChart.js +11 -3
  24. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  25. package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
  26. package/lib/components/AreaChart/index.js.map +1 -1
  27. package/lib/components/AreaChart/useAreaChartStyles.styles.js +1 -2
  28. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js +41 -0
  29. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -0
  30. package/lib/components/CommonComponents/CartesianChart.js +2 -1
  31. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  32. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  33. package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
  34. package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
  35. package/lib/components/CommonComponents/index.js.map +1 -1
  36. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +1 -2
  37. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js +128 -0
  38. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -0
  39. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +1 -2
  40. package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js +126 -0
  41. package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -0
  42. package/lib/components/DeclarativeChart/DeclarativeChart.js +15 -7
  43. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  44. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +44 -13
  45. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  46. package/lib/components/DeclarativeChart/imageExporter.js +1 -0
  47. package/lib/components/DeclarativeChart/imageExporter.js.map +1 -1
  48. package/lib/components/DeclarativeChart/index.js.map +1 -1
  49. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  50. package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
  51. package/lib/components/DonutChart/Arc/index.js.map +1 -1
  52. package/lib/components/DonutChart/Arc/useArcStyles.styles.js +1 -2
  53. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js +44 -0
  54. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -0
  55. package/lib/components/DonutChart/DonutChart.js +11 -3
  56. package/lib/components/DonutChart/DonutChart.js.map +1 -1
  57. package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
  58. package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
  59. package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -1
  60. package/lib/components/DonutChart/Pie/index.js.map +1 -1
  61. package/lib/components/DonutChart/Pie/usePieStyles.styles.js +1 -2
  62. package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js +29 -0
  63. package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -0
  64. package/lib/components/DonutChart/index.js.map +1 -1
  65. package/lib/components/DonutChart/useDonutChartStyles.styles.js +1 -2
  66. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js +45 -0
  67. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -0
  68. package/lib/components/FunnelChart/FunnelChart.js +10 -1
  69. package/lib/components/FunnelChart/FunnelChart.js.map +1 -1
  70. package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
  71. package/lib/components/FunnelChart/funnelGeometry.js.map +1 -1
  72. package/lib/components/FunnelChart/index.js.map +1 -1
  73. package/lib/components/FunnelChart/useFunnelChartStyles.styles.js +1 -2
  74. package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js +51 -0
  75. package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -0
  76. package/lib/components/GanttChart/GanttChart.js +19 -2
  77. package/lib/components/GanttChart/GanttChart.js.map +1 -1
  78. package/lib/components/GanttChart/GanttChart.types.js.map +1 -1
  79. package/lib/components/GanttChart/index.js.map +1 -1
  80. package/lib/components/GanttChart/useGanttChartStyles.styles.js +1 -2
  81. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js +23 -0
  82. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -0
  83. package/lib/components/GaugeChart/GaugeChart.js +9 -2
  84. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  85. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  86. package/lib/components/GaugeChart/index.js.map +1 -1
  87. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +1 -2
  88. package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js +142 -0
  89. package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -0
  90. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +70 -58
  91. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  92. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  93. package/lib/components/GroupedVerticalBarChart/index.js.map +1 -1
  94. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +1 -2
  95. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +53 -0
  96. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -0
  97. package/lib/components/HeatMapChart/HeatMapChart.js +11 -3
  98. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  99. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  100. package/lib/components/HeatMapChart/index.js.map +1 -1
  101. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +1 -2
  102. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +38 -0
  103. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -0
  104. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +23 -26
  105. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  106. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  107. package/lib/components/HorizontalBarChart/index.js.map +1 -1
  108. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +1 -2
  109. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +120 -0
  110. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -0
  111. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +9 -2
  112. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  113. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  114. package/lib/components/HorizontalBarChartWithAxis/index.js.map +1 -1
  115. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +1 -2
  116. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +39 -0
  117. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -0
  118. package/lib/components/Legends/Legends.js +28 -10
  119. package/lib/components/Legends/Legends.js.map +1 -1
  120. package/lib/components/Legends/Legends.types.js.map +1 -1
  121. package/lib/components/Legends/OverflowMenu.js.map +1 -1
  122. package/lib/components/Legends/index.js.map +1 -1
  123. package/lib/components/Legends/shape.js.map +1 -1
  124. package/lib/components/Legends/useLegendsStyles.styles.js +57 -14
  125. package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
  126. package/lib/components/Legends/useLegendsStyles.styles.raw.js +138 -0
  127. package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -0
  128. package/lib/components/LineChart/LineChart.js +9 -2
  129. package/lib/components/LineChart/LineChart.js.map +1 -1
  130. package/lib/components/LineChart/LineChart.types.js.map +1 -1
  131. package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  132. package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  133. package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  134. package/lib/components/LineChart/index.js.map +1 -1
  135. package/lib/components/LineChart/useLineChartStyles.styles.js +1 -2
  136. package/lib/components/LineChart/useLineChartStyles.styles.raw.js +52 -0
  137. package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -0
  138. package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  139. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  140. package/lib/components/ResponsiveContainer/index.js.map +1 -1
  141. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +1 -2
  142. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js +28 -0
  143. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -0
  144. package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  145. package/lib/components/SankeyChart/SankeyChart.js +5 -1
  146. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  147. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  148. package/lib/components/SankeyChart/index.js.map +1 -1
  149. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +1 -2
  150. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js +77 -0
  151. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -0
  152. package/lib/components/ScatterChart/ScatterChart.js +11 -3
  153. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  154. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  155. package/lib/components/ScatterChart/index.js.map +1 -1
  156. package/lib/components/ScatterChart/useScatterChartStyles.styles.js +1 -2
  157. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js +43 -0
  158. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -0
  159. package/lib/components/Sparkline/Sparkline.js.map +1 -1
  160. package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
  161. package/lib/components/Sparkline/index.js.map +1 -1
  162. package/lib/components/Sparkline/useSparklineStyles.styles.js +1 -2
  163. package/lib/components/Sparkline/useSparklineStyles.styles.raw.js +30 -0
  164. package/lib/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -0
  165. package/lib/components/VerticalBarChart/VerticalBarChart.js +62 -28
  166. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  167. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  168. package/lib/components/VerticalBarChart/index.js.map +1 -1
  169. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +1 -2
  170. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +58 -0
  171. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -0
  172. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +22 -8
  173. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  174. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  175. package/lib/components/VerticalStackedBarChart/index.js.map +1 -1
  176. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +1 -2
  177. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +49 -0
  178. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -0
  179. package/lib/index.js.map +1 -1
  180. package/lib/types/DataPoint.js.map +1 -1
  181. package/lib/types/EventAnnotation.js.map +1 -1
  182. package/lib/types/LegendDataItem.js.map +1 -1
  183. package/lib/types/index.js.map +1 -1
  184. package/lib/utilities/FocusableTooltipText.js.map +1 -1
  185. package/lib/utilities/KeyCodes.js.map +1 -1
  186. package/lib/utilities/SVGTooltipText.js +2 -0
  187. package/lib/utilities/SVGTooltipText.js.map +1 -1
  188. package/lib/utilities/async-utils.js.map +1 -1
  189. package/lib/utilities/colors.js.map +1 -1
  190. package/lib/utilities/getWindow.js.map +1 -1
  191. package/lib/utilities/image-export-utils.js +256 -0
  192. package/lib/utilities/image-export-utils.js.map +1 -0
  193. package/lib/utilities/index.js.map +1 -1
  194. package/lib/utilities/overflow-utils.js.map +1 -1
  195. package/lib/utilities/string.js.map +1 -1
  196. package/lib/utilities/test-data.js.map +1 -1
  197. package/lib/utilities/utilities.js +50 -5
  198. package/lib/utilities/utilities.js.map +1 -1
  199. package/lib/utilities/vbc-utils.js.map +1 -1
  200. package/lib-commonjs/AreaChart.js.map +1 -1
  201. package/lib-commonjs/CartesianChart.js.map +1 -1
  202. package/lib-commonjs/DeclarativeChart.js.map +1 -1
  203. package/lib-commonjs/DonutChart.js.map +1 -1
  204. package/lib-commonjs/FunnelChart.js.map +1 -1
  205. package/lib-commonjs/GanttChart.js.map +1 -1
  206. package/lib-commonjs/GaugeChart.js.map +1 -1
  207. package/lib-commonjs/GroupedVerticalBarChart.js.map +1 -1
  208. package/lib-commonjs/HeatMapChart.js.map +1 -1
  209. package/lib-commonjs/HorizontalBarChart.js.map +1 -1
  210. package/lib-commonjs/HorizontalBarChartWithAxis.js.map +1 -1
  211. package/lib-commonjs/Legends.js.map +1 -1
  212. package/lib-commonjs/LineChart.js.map +1 -1
  213. package/lib-commonjs/Popover.js.map +1 -1
  214. package/lib-commonjs/ResponsiveContainer.js.map +1 -1
  215. package/lib-commonjs/SankeyChart.js.map +1 -1
  216. package/lib-commonjs/ScatterChart.js.map +1 -1
  217. package/lib-commonjs/Sparkline.js.map +1 -1
  218. package/lib-commonjs/VerticalBarChart.js.map +1 -1
  219. package/lib-commonjs/VerticalStackedBarChart.js.map +1 -1
  220. package/lib-commonjs/components/AreaChart/AreaChart.js +10 -2
  221. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  222. package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
  223. package/lib-commonjs/components/AreaChart/index.js.map +1 -1
  224. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +1 -1
  225. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
  226. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js +57 -0
  227. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -0
  228. package/lib-commonjs/components/CommonComponents/CartesianChart.js +2 -1
  229. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  230. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  231. package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
  232. package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
  233. package/lib-commonjs/components/CommonComponents/index.js.map +1 -1
  234. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +1 -1
  235. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  236. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js +142 -0
  237. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -0
  238. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +1 -1
  239. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
  240. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js +140 -0
  241. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -0
  242. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +14 -6
  243. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  244. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +47 -13
  245. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  246. package/lib-commonjs/components/DeclarativeChart/imageExporter.js +1 -0
  247. package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +1 -1
  248. package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -1
  249. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  250. package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
  251. package/lib-commonjs/components/DonutChart/Arc/index.js.map +1 -1
  252. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +1 -1
  253. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
  254. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js +58 -0
  255. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -0
  256. package/lib-commonjs/components/DonutChart/DonutChart.js +10 -2
  257. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
  258. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  259. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
  260. package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -1
  261. package/lib-commonjs/components/DonutChart/Pie/index.js.map +1 -1
  262. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +1 -1
  263. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js +43 -0
  264. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -0
  265. package/lib-commonjs/components/DonutChart/index.js.map +1 -1
  266. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +1 -1
  267. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js +59 -0
  268. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -0
  269. package/lib-commonjs/components/FunnelChart/FunnelChart.js +10 -1
  270. package/lib-commonjs/components/FunnelChart/FunnelChart.js.map +1 -1
  271. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
  272. package/lib-commonjs/components/FunnelChart/funnelGeometry.js.map +1 -1
  273. package/lib-commonjs/components/FunnelChart/index.js.map +1 -1
  274. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.js +1 -1
  275. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.js.map +1 -1
  276. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js +65 -0
  277. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -0
  278. package/lib-commonjs/components/GanttChart/GanttChart.js +18 -1
  279. package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -1
  280. package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -1
  281. package/lib-commonjs/components/GanttChart/index.js.map +1 -1
  282. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js +1 -1
  283. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js +39 -0
  284. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -0
  285. package/lib-commonjs/components/GaugeChart/GaugeChart.js +9 -2
  286. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  287. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  288. package/lib-commonjs/components/GaugeChart/index.js.map +1 -1
  289. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +1 -1
  290. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  291. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js +160 -0
  292. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -0
  293. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +70 -58
  294. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  295. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  296. package/lib-commonjs/components/GroupedVerticalBarChart/index.js.map +1 -1
  297. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +1 -1
  298. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +69 -0
  299. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -0
  300. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +10 -2
  301. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  302. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  303. package/lib-commonjs/components/HeatMapChart/index.js.map +1 -1
  304. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +1 -1
  305. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +56 -0
  306. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -0
  307. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +23 -26
  308. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  309. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  310. package/lib-commonjs/components/HorizontalBarChart/index.js.map +1 -1
  311. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +1 -1
  312. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +134 -0
  313. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -0
  314. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +9 -2
  315. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  316. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  317. package/lib-commonjs/components/HorizontalBarChartWithAxis/index.js.map +1 -1
  318. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +1 -1
  319. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +55 -0
  320. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -0
  321. package/lib-commonjs/components/Legends/Legends.js +28 -10
  322. package/lib-commonjs/components/Legends/Legends.js.map +1 -1
  323. package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
  324. package/lib-commonjs/components/Legends/OverflowMenu.js.map +1 -1
  325. package/lib-commonjs/components/Legends/index.js.map +1 -1
  326. package/lib-commonjs/components/Legends/shape.js.map +1 -1
  327. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +101 -28
  328. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
  329. package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js +174 -0
  330. package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -0
  331. package/lib-commonjs/components/LineChart/LineChart.js +9 -2
  332. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  333. package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
  334. package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  335. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  336. package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  337. package/lib-commonjs/components/LineChart/index.js.map +1 -1
  338. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +1 -1
  339. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js +66 -0
  340. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -0
  341. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  342. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  343. package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -1
  344. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +1 -1
  345. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js +46 -0
  346. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -0
  347. package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  348. package/lib-commonjs/components/SankeyChart/SankeyChart.js +5 -1
  349. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
  350. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  351. package/lib-commonjs/components/SankeyChart/index.js.map +1 -1
  352. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +1 -1
  353. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  354. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js +95 -0
  355. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -0
  356. package/lib-commonjs/components/ScatterChart/ScatterChart.js +10 -2
  357. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  358. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  359. package/lib-commonjs/components/ScatterChart/index.js.map +1 -1
  360. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +1 -1
  361. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js +57 -0
  362. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -0
  363. package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
  364. package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
  365. package/lib-commonjs/components/Sparkline/index.js.map +1 -1
  366. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +1 -1
  367. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js +44 -0
  368. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -0
  369. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +62 -28
  370. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  371. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  372. package/lib-commonjs/components/VerticalBarChart/index.js.map +1 -1
  373. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +1 -1
  374. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +74 -0
  375. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -0
  376. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +22 -8
  377. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  378. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  379. package/lib-commonjs/components/VerticalStackedBarChart/index.js.map +1 -1
  380. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +1 -1
  381. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
  382. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +67 -0
  383. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -0
  384. package/lib-commonjs/index.js.map +1 -1
  385. package/lib-commonjs/types/DataPoint.js.map +1 -1
  386. package/lib-commonjs/types/EventAnnotation.js.map +1 -1
  387. package/lib-commonjs/types/LegendDataItem.js.map +1 -1
  388. package/lib-commonjs/types/index.js.map +1 -1
  389. package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -1
  390. package/lib-commonjs/utilities/KeyCodes.js.map +1 -1
  391. package/lib-commonjs/utilities/SVGTooltipText.js +2 -0
  392. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
  393. package/lib-commonjs/utilities/async-utils.js.map +1 -1
  394. package/lib-commonjs/utilities/colors.js.map +1 -1
  395. package/lib-commonjs/utilities/getWindow.js.map +1 -1
  396. package/lib-commonjs/utilities/image-export-utils.js +274 -0
  397. package/lib-commonjs/utilities/image-export-utils.js.map +1 -0
  398. package/lib-commonjs/utilities/index.js.map +1 -1
  399. package/lib-commonjs/utilities/overflow-utils.js.map +1 -1
  400. package/lib-commonjs/utilities/string.js.map +1 -1
  401. package/lib-commonjs/utilities/test-data.js.map +1 -1
  402. package/lib-commonjs/utilities/utilities.js +56 -5
  403. package/lib-commonjs/utilities/utilities.js.map +1 -1
  404. package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
  405. package/package.json +12 -22
@@ -18,6 +18,7 @@ const _reactutilities = require("@fluentui/react-utilities");
18
18
  const _reacttheme = require("@fluentui/react-theme");
19
19
  const _index = require("../../index");
20
20
  const _index1 = require("../../utilities/index");
21
+ const _imageexportutils = require("../../utilities/image-export-utils");
21
22
  const barGapMultiplier = 0.2;
22
23
  const barGapMin = 1;
23
24
  const MIN_DOMAIN_MARGIN = 8;
@@ -49,6 +50,7 @@ const VerticalStackedBarChart = (props)=>{
49
50
  let _xAxisOuterPadding = 0;
50
51
  const cartesianChartRef = _react.useRef(null);
51
52
  const Y_ORIGIN = 0;
53
+ const _legendsRef = _react.useRef(null);
52
54
  const [selectedLegends, setSelectedLegends] = _react.useState(((_props_legendProps = props.legendProps) === null || _props_legendProps === void 0 ? void 0 : _props_legendProps.selectedLegends) || []);
53
55
  const [activeLegend, setActiveLegend] = _react.useState(undefined);
54
56
  const [dataForHoverCard, setDataForHoverCard] = _react.useState(0);
@@ -89,7 +91,11 @@ const VerticalStackedBarChart = (props)=>{
89
91
  var _cartesianChartRef_current;
90
92
  var _cartesianChartRef_current_chartContainer;
91
93
  return {
92
- 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
94
+ 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,
95
+ toImage: (opts)=>{
96
+ var _cartesianChartRef_current, _legendsRef_current;
97
+ 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);
98
+ }
93
99
  };
94
100
  }, []);
95
101
  function _getLegendData(data, lineLegends) {
@@ -146,7 +152,8 @@ const VerticalStackedBarChart = (props)=>{
146
152
  enabledWrapLines: props.enabledLegendsWrapLines,
147
153
  overflowText: props.legendsOverflowText,
148
154
  ...props.legendProps,
149
- onChange: _onLegendSelectionChange
155
+ onChange: _onLegendSelectionChange,
156
+ legendRef: _legendsRef
150
157
  });
151
158
  }
152
159
  function _getHighlightedLegend() {
@@ -232,7 +239,7 @@ const VerticalStackedBarChart = (props)=>{
232
239
  _colors = defaultColors;
233
240
  _xAxisType = (0, _index1.getTypeOfAxis)(props.data[0].xAxisPoint, true);
234
241
  _lineObject = _getFormattedLineData(props.data);
235
- _xAxisInnerPadding = (0, _index1.getScalePadding)(props.xAxisInnerPadding, props.xAxisPadding, 2 / 3);
242
+ _xAxisInnerPadding = (0, _index1.getScalePadding)(props.xAxisInnerPadding, props.xAxisPadding, _xAxisType === _index1.XAxisTypes.StringAxis ? 2 / 3 : 1 / 2);
236
243
  _xAxisOuterPadding = (0, _index1.getScalePadding)(props.xAxisOuterPadding, props.xAxisPadding, 0);
237
244
  }
238
245
  function _createDataSetLayer() {
@@ -607,10 +614,13 @@ const VerticalStackedBarChart = (props)=>{
607
614
  ] : [
608
615
  xMin,
609
616
  xMax
610
- ]).nice().range([
617
+ ]).range([
611
618
  _margins.left + _domainMargin,
612
619
  containerWidth - _margins.right - _domainMargin
613
620
  ]);
621
+ if (!(0, _index1.isScalePaddingDefined)(props.xAxisInnerPadding, props.xAxisPadding)) {
622
+ xBarScale.nice();
623
+ }
614
624
  return {
615
625
  xBarScale,
616
626
  yBarScale
@@ -692,10 +702,13 @@ const VerticalStackedBarChart = (props)=>{
692
702
  const barWidth = (0, _index1.getBarWidth)(props.barWidth, props.maxBarWidth, bandwidth);
693
703
  let reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * barWidth;
694
704
  const margin1 = (totalWidth - reqWidth) / 2;
695
- // Calculate the remaining width after accounting for the space required to render x-axis labels
696
- const step = (0, _index1.calculateLongestLabelWidth)(_xAxisLabels) + 20;
697
- reqWidth = (_xAxisLabels.length - _xAxisInnerPadding) * step;
698
- const margin2 = (totalWidth - reqWidth) / 2;
705
+ let margin2 = Number.POSITIVE_INFINITY;
706
+ if (!props.hideTickOverlap) {
707
+ // Calculate the remaining width after accounting for the space required to render x-axis labels
708
+ const step = (0, _index1.calculateLongestLabelWidth)(_xAxisLabels) + 20;
709
+ reqWidth = (_xAxisLabels.length - _xAxisInnerPadding) * step;
710
+ margin2 = (totalWidth - reqWidth) / 2;
711
+ }
699
712
  _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));
700
713
  }
701
714
  } else {
@@ -953,6 +966,7 @@ const VerticalStackedBarChart = (props)=>{
953
966
  xAxisOuterPadding: _xAxisOuterPadding
954
967
  },
955
968
  componentRef: cartesianChartRef,
969
+ showRoundOffXTickValues: !(0, _index1.isScalePaddingDefined)(props.xAxisInnerPadding, props.xAxisPadding),
956
970
  /* eslint-disable react/jsx-no-bind */ children: (props)=>{
957
971
  return /*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement("g", null, _bars), /*#__PURE__*/ _react.createElement("g", null, _isHavingLines && _createLines(props.xScale, props.yScalePrimary, props.containerHeight, props.containerWidth, props.yScaleSecondary)));
958
972
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["VerticalStackedBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { useVerticalStackedBarChartStyles } from './useVerticalStackedBarChartStyles.styles';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n scaleTime as d3ScaleTime,\n} from 'd3-scale';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n AccessibilityProps,\n CartesianChart,\n ChildProps,\n VerticalStackedBarDataPoint,\n Margins,\n VerticalStackedBarChartProps,\n VerticalStackedChartProps,\n VSChartDataPoint,\n LineDataInVerticalStackedBarChart,\n ModifiedCartesianChartProps,\n Legend,\n ChartPopover,\n Legends,\n Chart,\n DataPoint,\n} from '../../index';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n formatDate,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n DataVizPalette,\n getColorFromToken,\n findVSBCNumericMinMaxOfY,\n YAxisType,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfVSBCNumeric,\n domainRangeOfXStringAxis,\n createStringYAxis,\n} from '../../utilities/index';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface RefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = LineDataInVerticalStackedBarChart & { index: number; xItem: VerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: VSChartDataPoint;\n};\n\nexport const VerticalStackedBarChart: React.FunctionComponent<VerticalStackedBarChartProps> = props => {\n const _isRtl: boolean = useRtl();\n const _createLegendsForLine: (data: VerticalStackedChartProps[]) => LineLegends[] = (\n data: VerticalStackedChartProps[],\n ) => _getLineLegends(data);\n const _tooltipId: string = useId('VSBCTooltipId_');\n const _emptyChartId: string = useId('_VSBC_empty');\n let _points: VerticalStackedChartProps[] = [];\n let _dataset: VerticalStackedBarDataPoint[];\n let _xAxisLabels: string[] = [];\n let _bars: JSX.Element[];\n let _xAxisType: XAxisTypes =\n props.data! && props.data!.length > 0\n ? (getTypeOfAxis(props.data[0]!.xAxisPoint, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n let _barWidth: number = 0;\n let _colors: string[];\n let _margins: Margins;\n let _lineObject: LineObject;\n let _yMax: number;\n let _yMin: number;\n let _calloutAnchorPoint: CalloutAnchorPointData | null;\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\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 [selectedLegends, setSelectedLegends] = React.useState(props.legendProps?.selectedLegends || []);\n const [activeLegend, setActiveLegend] = React.useState<string | undefined>(undefined);\n const [dataForHoverCard, setDataForHoverCard] = React.useState(0);\n const [color, setColor] = React.useState('');\n const [hoverXValue, setHoverXValue] = React.useState<string | number>('');\n const [YValueHover, setYValueHover] = React.useState<(LineDataInVerticalStackedBarChart | VSChartDataPoint)[]>([]);\n const [xCalloutValue, setXCalloutValue] = React.useState('');\n const [yCalloutValue, setYCalloutValue] = React.useState('');\n const [activeXAxisDataPoint, setActiveXAxisDataPoint] = React.useState<number | string | Date>('');\n const [calloutLegend, setCalloutLegend] = React.useState('');\n const [stackCalloutProps, setStackCalloutProps] = React.useState<VerticalStackedChartProps>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<VSChartDataPoint>();\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps>();\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\n const prevPropsRef = React.useRef<VerticalStackedBarChartProps | null>(null);\n React.useEffect(() => {\n if (prevPropsRef.current) {\n const prevProps = prevPropsRef.current;\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, props.legendProps?.selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n if (prevProps.height !== props.height || prevProps.width !== props.width || prevProps.data !== props.data) {\n _adjustProps();\n _dataset = _createDataSetLayer();\n }\n }\n prevPropsRef.current = props;\n }, [props]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n function _getLegendData(data: VerticalStackedChartProps[], lineLegends: LineLegends[]): JSX.Element {\n if (props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color6),\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color5),\n getColorFromToken(DataVizPalette.color7),\n getColorFromToken(DataVizPalette.color10),\n ];\n const actions: Legend[] = [];\n const { allowHoverOnLegend = true } = props;\n\n data.forEach((singleChartData: VerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: VSChartDataPoint) => {\n const 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\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: allowHoverOnLegend\n ? () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => _onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: Legend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: Legend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n hoverAction: allowHoverOnLegend\n ? () => {\n _handleChartMouseLeave();\n _onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => _onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: Legend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={_onLegendSelectionChange}\n />\n );\n }\n\n function _getHighlightedLegend() {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }\n\n function _lineHoverOut() {\n setPopoverOpen(false);\n setXCalloutValue('');\n setYCalloutValue('');\n setActiveXAxisDataPoint('');\n setColor('');\n }\n\n function _lineHoverFocus(lineData: LinePoint) {\n setPopoverOpen(true);\n setXCalloutValue(`${lineData.xItem.xAxisPoint}`);\n setYCalloutValue(`${lineData.yAxisCalloutData || lineData.data || lineData.y}`);\n setActiveXAxisDataPoint(lineData.xItem.xAxisPoint);\n setColor(lineData.color);\n }\n\n function _onStackHoverFocus(\n stack: VerticalStackedChartProps,\n mouseEvent: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n let clientX = 0;\n let clientY = 0;\n if ('clientX' in mouseEvent) {\n clientX = mouseEvent.clientX;\n clientY = mouseEvent.clientY;\n } else {\n // Handle case where mouseEvent is an SVGGElement\n const boundingRect = mouseEvent.getBoundingClientRect();\n clientX = boundingRect.left + boundingRect.width / 2;\n clientY = boundingRect.top + boundingRect.height / 2;\n }\n if (!_noLegendHighlighted()) {\n stack = {\n ...stack,\n chartData: stack.chartData.filter((dataPoint: { legend: any }) => _isLegendHighlighted(dataPoint.legend)),\n lineData: stack.lineData?.filter((dataPoint: { legend: any }) => _isLegendHighlighted(dataPoint.legend)),\n };\n }\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: LineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n _updatePosition(clientX, clientY);\n setPopoverOpen(stack.chartData.length > 0 || (stack.lineData?.length ?? 0) > 0);\n setYValueHover(\n isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n );\n setHoverXValue(stack.xAxisPoint instanceof Date ? formatDate(stack.xAxisPoint, props.useUTC) : stack.xAxisPoint);\n setStackCalloutProps(stack);\n setActiveXAxisDataPoint(stack.xAxisPoint);\n setCallOutAccessibilityData(stack.stackCallOutAccessibilityData);\n }\n\n function _handleChartMouseLeave(): void {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n setActiveXAxisDataPoint('');\n }\n\n const _onClick = (\n data: VerticalStackedChartProps | VSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n props.onBarClick?.(mouseEvent, data);\n props.href ? (window.location.href = props.href) : '';\n };\n\n function _adjustProps(): void {\n _points = props.data || [];\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const defaultColors: string[] = [\n getColorFromToken(DataVizPalette.color6),\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color5),\n getColorFromToken(DataVizPalette.color7),\n getColorFromToken(DataVizPalette.color10),\n ];\n _colors = defaultColors;\n _xAxisType = getTypeOfAxis(props.data[0].xAxisPoint, true) as XAxisTypes;\n _lineObject = _getFormattedLineData(props.data);\n _xAxisInnerPadding = getScalePadding(props.xAxisInnerPadding, props.xAxisPadding, 2 / 3);\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding, props.xAxisPadding, 0);\n }\n\n function _createDataSetLayer(): VerticalStackedBarDataPoint[] {\n const tempArr: string[] = [];\n const dataset: VerticalStackedBarDataPoint[] = _points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: VSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n _xAxisLabels = tempArr;\n return dataset;\n }\n\n function _onLegendHover(legendTitle: string): void {\n setActiveLegend(legendTitle);\n }\n\n function _onLegendLeave(): void {\n setActiveLegend(undefined);\n }\n\n function _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 function _getMargins(margins: Margins) {\n _margins = margins;\n }\n\n function _getGraphData(\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) {\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n return (_bars = _createBar(xBarScale, yBarScale, containerHeight, xElement!));\n }\n\n function _getAxisData(yAxisData: IAxisData) {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || Y_ORIGIN);\n _yMin = Math.min(domainValue[0], props.yMinValue || Y_ORIGIN);\n }\n }\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n function _isLegendHighlighted(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 function _noLegendHighlighted() {\n return _getHighlightedLegend().length === 0;\n }\n\n function _getAriaLabel(singleChartData: VerticalStackedChartProps, point?: VSChartDataPoint): string {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDate(singleChartData.xAxisPoint)\n : singleChartData.xAxisPoint);\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue =\n singleChartData.xAxisCalloutData ||\n point.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDate(singleChartData.xAxisPoint)\n : singleChartData.xAxisPoint);\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n function _getCustomizedCallout() {\n const _isHavingLines = props.data.some(\n (item: VerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return props.onRenderCalloutPerStack\n ? props.onRenderCalloutPerStack(stackCalloutProps)\n : props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps, _renderCallout)\n : null;\n }\n\n function _toFocusWholeStack(_isHavingLines: boolean): boolean {\n const { isCalloutForStack = false } = props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (_getHighlightedLegend().length === 1) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n }\n\n function _getDomainNRangeValues(\n points: DataPoint[],\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) {\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n function _getFormattedLineData(data: VerticalStackedChartProps[]): LineObject {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: VerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n item.lineData.forEach((line: any) => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n }\n\n function _getLineLegends(data: VerticalStackedChartProps[]): LineLegends[] {\n const lineObject: LineObject = _lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n }\n\n function _createLines(\n xScale: any,\n yScalePrimary: NumericScale,\n containerHeight: number,\n containerWidth: number,\n yScaleSecondary?: NumericScale,\n ): JSX.Element {\n const lineObject: LineObject = _getFormattedLineData(props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n //const { theme } = props;\n const lineBorderWidth = props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n const xScaleBandwidthTranslate = _xAxisType !== XAxisTypes.StringAxis ? 0 : xScale.bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = _isLegendHighlighted(item) || _noLegendHighlighted();\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = xScale(lineObject[item][i - 1].xItem.xAxisPoint);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && yScaleSecondary;\n const y1 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i - 1].y)\n : yScalePrimary(lineObject[item][i - 1].y);\n const x2 = xScale(lineObject[item][i].xItem.xAxisPoint);\n const y2 = useSecondaryYScale ? yScaleSecondary!(lineObject[item][i].y) : yScalePrimary(lineObject[item][i].y);\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={tokens.colorNeutralBackground1}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={lineObject[item][0].lineOptions?.strokeWidth ?? 3}\n strokeLinecap={lineObject[item][0].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={lineObject[item][0].lineOptions?.strokeDasharray}\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...(_isLegendHighlighted(item) && {\n onMouseOver: _lineHover.bind(lineObject[item][i - 1]),\n onMouseLeave: _lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n const noBarsAndLinesActive =\n circlePoint.xItem.chartData.filter(\n dataPoint => _noLegendHighlighted() || _isLegendHighlighted(dataPoint.legend),\n ).length === 0;\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={xScale(circlePoint.xItem.xAxisPoint)}\n cy={\n circlePoint.useSecondaryYScale && yScaleSecondary\n ? yScaleSecondary(circlePoint.y)\n : yScalePrimary(circlePoint.y)\n }\n onMouseOver={\n _isLegendHighlighted(item)\n ? (event: React.MouseEvent<SVGElement, MouseEvent>) => _lineHover(circlePoint, event)\n : (event: React.MouseEvent<SVGElement, MouseEvent>) => _onStackHover(circlePoint.xItem, event)\n }\n {...(_isLegendHighlighted(item) && {\n onMouseLeave: _lineHoverOut,\n })}\n r={_getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={tokens.colorNeutralBackground1}\n strokeWidth={3}\n visibility={_getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n ref={e => (circleRef.refElement = e)}\n {...(noBarsAndLinesActive\n ? {\n tabIndex: !props.hideTooltip ? 0 : undefined,\n onFocus: event => _lineFocus(event, circlePoint, circleRef),\n onBlur: _handleMouseOut,\n role: 'img',\n 'aria-label': _getAriaLabel(circlePoint.xItem, circlePoint as VSChartDataPoint),\n }\n : {})}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n }\n\n function _getCircleVisibilityAndRadius(\n xAxisPoint: string | number | Date,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } {\n if (!_noLegendHighlighted()) {\n if (xAxisPoint === activeXAxisDataPoint && _isLegendHighlighted(legend)) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (_isLegendHighlighted(legend)) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxisPoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n }\n\n function _renderCallout(props?: VSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartPopover\n culture={props.culture ?? 'en-us'}\n XValue={props.xAxisCalloutData}\n xCalloutValue={xCalloutValue}\n yCalloutValue={yCalloutValue}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n />\n ) : null;\n }\n\n function _onRectHover(\n xAxisPoint: string | number | Date,\n point: VSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n _onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n function _onRectFocusHover(\n xAxisPoint: string | number | Date,\n point: VSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement> | SVGGElement,\n ) {\n let clientX = 0;\n let clientY = 0;\n if ('clientX' in mouseEvent) {\n clientX = mouseEvent.clientX;\n clientY = mouseEvent.clientY;\n } else {\n // Handle case where mouseEvent is an SVGGElement\n const boundingRect = mouseEvent.getBoundingClientRect();\n clientX = boundingRect.left + boundingRect.width / 2;\n clientY = boundingRect.top + boundingRect.height / 2;\n }\n if (_calloutAnchorPoint?.chartDataPoint !== point || _calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n _calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint: `${xAxisPoint}`,\n };\n _updatePosition(clientX, clientY);\n setPopoverOpen(_noLegendHighlighted() || _isLegendHighlighted(point.legend));\n setCalloutLegend(point.legend);\n setDataForHoverCard(point.data);\n setColor(color);\n setXCalloutValue(point.xAxisCalloutData ? point.xAxisCalloutData : `${xAxisPoint}`);\n setYCalloutValue(point.yAxisCalloutData!);\n setDataPointCalloutProps(point);\n setCallOutAccessibilityData(point.callOutAccessibilityData);\n }\n }\n\n function _lineHover(lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) {\n mouseEvent.persist();\n _lineHoverFocus(lineData);\n }\n\n function _lineFocus(\n event: React.FocusEvent<SVGCircleElement, Element>,\n lineData: LinePoint,\n ref: { refElement: SVGCircleElement | null },\n ) {\n if (ref.refElement) {\n _lineHoverFocus(lineData);\n }\n }\n\n function _onStackHover(stack: VerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n _onStackHoverFocus(stack, mouseEvent);\n }\n\n function _onRectFocus(point: VSChartDataPoint, xAxisPoint: string, color: string, ref: RefArrayData): void {\n if (ref.refElement) {\n _onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n function _onStackFocus(stack: VerticalStackedChartProps, groupRef: RefArrayData): void {\n if (groupRef.refElement) {\n _onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n function _handleMouseOut(): void {\n setPopoverOpen(false);\n }\n\n function _getBarGapAndScale(\n bars: VSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n readonly absStackTotal: number;\n } {\n const { barGapMax = 0 } = props;\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + Math.abs(value.data), 0);\n const totalHeight = defaultTotalHeight ?? Math.abs(yBarScale(totalData) - yBarScale(Y_ORIGIN));\n let sumOfPercent = 0;\n bars.forEach(point => {\n let value = (Math.abs(point.data) / totalData) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n });\n const scalingRatio = sumOfPercent !== 0 ? sumOfPercent / 100 : 1;\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / (totalData * scalingRatio);\n return {\n gapHeight,\n heightValueScale,\n absStackTotal: totalData,\n } as const;\n }\n\n function _getScales(containerHeight: number, containerWidth: number) {\n const yDomain = [Math.min(Y_ORIGIN, _yMin), Math.max(Y_ORIGIN, _yMax)];\n const yBarScale = d3ScaleLinear()\n .domain(yDomain)\n .range([0, containerHeight - _margins.bottom! - _margins.top!]);\n if (_xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(_dataset, (point: VerticalStackedBarDataPoint) => point.x as number)!;\n const xMin = d3Min(_dataset, (point: VerticalStackedBarDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(_isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([_margins.left! + _domainMargin, containerWidth - _margins.right! - _domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n if (_xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(_dataset, (point: VerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const lDate = d3Max(_dataset, (point: VerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const xBarScale = props.useUTC ? d3ScaleUtc() : d3ScaleTime();\n xBarScale\n .domain(_isRtl ? [lDate, sDate] : [sDate, lDate])\n .range([_margins.left! + _domainMargin, containerWidth - _margins.right! - _domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n const xBarScale = d3ScaleBand()\n .domain(_xAxisLabels)\n .range(\n _isRtl\n ? [containerWidth - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n\n return { xBarScale, yBarScale };\n }\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.some(item => item.chartData.length > 0 || (item.lineData && item.lineData.length > 0))\n );\n };\n\n function _updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n function _getDomainMargins(containerWidth: number): Margins {\n _domainMargin = MIN_DOMAIN_MARGIN;\n\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 bars changes wrt the bar width */\n const barGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding, props.xAxisPadding)) {\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 bar and after the last bar.\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 /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * _barWidth;\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 bars at their maximum allowable width\n const bandwidth = totalWidth / (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, bandwidth);\n let reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * barWidth;\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 } else {\n const data = (props.data?.map(point => point.xAxisPoint) as number[] | Date[] | undefined) || [];\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n calculateAppropriateBarWidth(data, totalWidth, _xAxisInnerPadding),\n );\n _domainMargin = MIN_DOMAIN_MARGIN + _barWidth / 2;\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n }\n\n function _getChartTitle(): string {\n const { chartTitle, data } = props;\n const numLines = Object.keys(_lineObject).length;\n return (\n (chartTitle ? `${chartTitle}. ` : '') +\n `Vertical bar chart with ${data?.length || 0} stacked bars` +\n (numLines > 0 ? ` and ${numLines} lines` : '') +\n '. '\n );\n }\n\n const classes = useVerticalStackedBarChartStyles(props);\n function _createBar(\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = props;\n const _isHavingLines = props.data.some(\n (item: VerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = _toFocusWholeStack(_isHavingLines);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth, xBarScale.bandwidth());\n }\n\n const bars = _points.map((singleChartData: VerticalStackedChartProps, indexNumber: number) => {\n const xPoint = xBarScale(\n _xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : _xAxisType === XAxisTypes.DateAxis\n ? (singleChartData.xAxisPoint as Date)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n _xAxisType !== XAxisTypes.StringAxis ? -_barWidth / 2 : (xBarScale.bandwidth() - _barWidth) / 2;\n\n let barTotalValue = 0;\n\n const barsToDisplay = singleChartData.chartData.filter(point => point.data !== 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale, absStackTotal } = _getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const yBaseline = containerHeight - _margins.bottom! - yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = 0;\n let heightOfLastBar = 0;\n\n const singleBar = barsToDisplay.map((point: VSChartDataPoint, index: number) => {\n const startColor = point.color ? point.color : _colors[index];\n const ref: RefArrayData = {};\n const shouldHighlight = _isLegendHighlighted(point.legend) || _noLegendHighlighted() ? true : false;\n const rectFocusProps = !shouldFocusWholeStack && {\n 'aria-label': _getAriaLabel(singleChartData, point),\n onMouseOver: (event: React.MouseEvent<SVGElement, MouseEvent>) =>\n _onRectHover(singleChartData.xAxisPoint, point, startColor, event),\n onMouseMove: (event: React.MouseEvent<SVGElement, MouseEvent>) =>\n _onRectHover(singleChartData.xAxisPoint, point, startColor, event),\n onMouseLeave: _handleMouseOut,\n onFocus: () => _onRectFocus(point, singleChartData.xAxisPoint as string, startColor, ref),\n onBlur: _handleMouseOut,\n onClick: (event: React.MouseEvent<SVGElement, MouseEvent>) => _onClick(point, event),\n role: 'img',\n tabIndex: !props.hideTooltip && shouldHighlight ? 0 : undefined,\n };\n\n let barHeight = Math.abs(heightValueScale * point.data);\n // FIXME: The current scaling logic may produce different min and gap heights for each bar stack.\n const minHeight = Math.max((heightValueScale * absStackTotal) / 100.0, barMinimumHeight);\n if (barHeight < minHeight) {\n barHeight = minHeight;\n }\n const gapOffset = index ? gapHeight : 0;\n if (point.data >= Y_ORIGIN) {\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + gapOffset;\n yNegativeStart = yPoint + barHeight;\n }\n\n barTotalValue += point.data;\n heightOfLastBar = index === barsToDisplay.length - 1 ? barHeight : 0;\n\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <React.Fragment key={index + indexNumber + `${shouldFocusWholeStack}`}>\n <path\n className={classes.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${_barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-_barWidth}\n z\n `}\n fill={startColor}\n rx={props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n cursor={props.href ? 'pointer' : 'default'}\n {...rectFocusProps}\n />\n </React.Fragment>\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <React.Fragment key={index + indexNumber}>\n <rect\n className={classes.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={_barWidth}\n height={barHeight}\n fill={startColor}\n opacity={shouldHighlight ? 1 : 0.1}\n cursor={props.href ? 'pointer' : 'default'}\n rx={props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n </React.Fragment>\n );\n });\n const groupRef: RefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'aria-label': _getAriaLabel(singleChartData),\n onMouseOver: (event: any) => _onStackHover(singleChartData, event),\n onMouseMove: (event: any) => _onStackHover(singleChartData, event),\n onMouseLeave: _handleMouseOut,\n onFocus: () => _onStackFocus(singleChartData, groupRef),\n onBlur: _handleMouseOut,\n onClick: (event: any) => _onClick(singleChartData, event),\n role: 'img',\n tabIndex: !props.hideTooltip ? 0 : undefined,\n };\n let showLabel = false;\n let barLabel = 0;\n if (!props.hideLabels) {\n if (_noLegendHighlighted()) {\n showLabel = true;\n barLabel = barTotalValue;\n } else {\n barsToDisplay.forEach(point => {\n if (_isLegendHighlighted(point.legend)) {\n showLabel = true;\n barLabel += point.data;\n }\n });\n }\n }\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {!props.hideLabels && _barWidth >= 16 && showLabel && (\n <text\n x={xPoint + _barWidth / 2}\n //if total bar value >=0, show label above top bar, otherwise below bottom bar\n y={barLabel >= Y_ORIGIN ? yPoint - 6 : yPoint + heightOfLastBar + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-label={`Total: ${barLabel}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(barLabel)\n : formatScientificLimitWidth(barLabel)}\n </text>\n )}\n </g>\n );\n });\n if (!props.showXAxisLablesTooltip) {\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\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 bars.filter((bar): bar is JSX.Element => !!bar);\n }\n\n function _getMinMaxOfYAxis(\n dataset: DataPoint[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } {\n if (!useSecondaryYScale) {\n return findVSBCNumericMinMaxOfY(dataset);\n }\n\n const values: number[] = [];\n props.data.forEach(xPoint => {\n xPoint.lineData?.forEach(point => {\n // useSecondaryYScale is applicable only for lines in VSBC\n if (point.useSecondaryYScale) {\n values.push(point.y);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n if (!_isChartEmpty()) {\n _adjustProps();\n const _isHavingLines = props.data.some(\n (item: VerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = _toFocusWholeStack(_isHavingLines);\n _dataset = _createDataSetLayer();\n const legendBars: JSX.Element = _getLegendData(_points, _createLegendsForLine(props.data));\n const calloutProps: ModifiedCartesianChartProps['calloutProps'] = {\n color: color,\n legend: calloutLegend,\n XValue: xCalloutValue!,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover: YValueHover,\n hoverXValue: hoverXValue,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData),\n clickPosition: clickPosition,\n isPopoverOpen: isPopoverOpen,\n isCalloutForStack:\n props.isCalloutForStack || (_isHavingLines && (_noLegendHighlighted() || _getHighlightedLegend().length > 1)),\n isCartesian: true,\n customCallout: {\n customizedCallout: _getCustomizedCallout() !== null ? _getCustomizedCallout()! : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(dataPointCalloutProps!)\n : undefined,\n },\n };\n const tickParams = {\n tickValues: props.tickValues,\n tickFormat: props.tickFormat,\n };\n return (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={_xAxisType}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={_xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n getDomainNRangeValues={_getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n barwidth={_barWidth}\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 componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={(props: ChildProps) => {\n return (\n <>\n <g>{_bars}</g>\n <g>\n {_isHavingLines &&\n _createLines(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />;\n};\nVerticalStackedBarChart.displayName = 'VerticalStackedBarChart';\n"],"names":["React","max","d3Max","min","d3Min","select","d3Select","useVerticalStackedBarChartStyles","scaleLinear","d3ScaleLinear","scaleBand","d3ScaleBand","scaleUtc","d3ScaleUtc","scaleTime","d3ScaleTime","useId","tokens","CartesianChart","ChartPopover","Legends","ChartTypes","getAccessibleDataObject","XAxisTypes","getTypeOfAxis","tooltipOfAxislabels","formatScientificLimitWidth","getBarWidth","getScalePadding","isScalePaddingDefined","calculateAppropriateBarWidth","formatDate","areArraysEqual","calculateLongestLabelWidth","useRtl","DataVizPalette","getColorFromToken","findVSBCNumericMinMaxOfY","createNumericYAxis","domainRangeOfDateForAreaLineVerticalBarChart","domainRangeOfVSBCNumeric","domainRangeOfXStringAxis","createStringYAxis","barGapMultiplier","barGapMin","MIN_DOMAIN_MARGIN","CircleVisbility","VerticalStackedBarChart","props","_isRtl","_createLegendsForLine","data","_getLineLegends","_tooltipId","_emptyChartId","_points","_dataset","_xAxisLabels","_bars","_xAxisType","length","xAxisPoint","StringAxis","_barWidth","_colors","_margins","_lineObject","_yMax","_yMin","_calloutAnchorPoint","_domainMargin","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","selectedLegends","setSelectedLegends","useState","legendProps","activeLegend","setActiveLegend","undefined","dataForHoverCard","setDataForHoverCard","color","setColor","hoverXValue","setHoverXValue","YValueHover","setYValueHover","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","activeXAxisDataPoint","setActiveXAxisDataPoint","calloutLegend","setCalloutLegend","stackCalloutProps","setStackCalloutProps","dataPointCalloutProps","setDataPointCalloutProps","callOutAccessibilityData","setCallOutAccessibilityData","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","prevPropsRef","useEffect","current","prevProps","height","width","_adjustProps","_createDataSetLayer","useImperativeHandle","componentRef","chartContainer","_getLegendData","lineLegends","hideLegend","defaultPalette","color6","color1","color5","color7","color10","actions","allowHoverOnLegend","forEach","singleChartData","chartData","point","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","push","legendsOfLine","isLineLegendInBarChart","totalLegends","concat","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","onChange","_onLegendSelectionChange","_getHighlightedLegend","_lineHoverOut","_lineHoverFocus","lineData","xItem","yAxisCalloutData","_onStackHoverFocus","stack","mouseEvent","clientX","clientY","boundingRect","getBoundingClientRect","left","top","_noLegendHighlighted","dataPoint","_isLegendHighlighted","isLinesPresent","item","shouldDrawBorderBottom","_updatePosition","sort","a","b","slice","reverse","Date","useUTC","stackCallOutAccessibilityData","_onClick","onBarClick","href","window","location","barWidth","maxBarWidth","defaultColors","_getFormattedLineData","xAxisInnerPadding","xAxisPadding","xAxisOuterPadding","tempArr","dataset","map","singlePointData","total","legendTitle","_selectedLegends","event","currentLegend","canSelectMultipleLegends","_getMargins","margins","_getGraphData","xScale","yScale","containerHeight","containerWidth","xElement","xBarScale","yBarScale","_getScales","_createBar","_getAxisData","yAxisData","yAxisDomainValues","domainValue","yMaxValue","yMinValue","includes","_getAriaLabel","xValue","xAxisCalloutData","pointValues","pt","yValue","join","lineValues","ln","ariaLabel","_getCustomizedCallout","_isHavingLines","some","onRenderCalloutPerStack","onRenderCalloutPerDataPoint","_renderCallout","_toFocusWholeStack","isCalloutForStack","shouldFocusStackOnly","_getDomainNRangeValues","points","chartType","isRTL","xAxisType","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","linesData","formattedLineData","index","line","lineObject","Object","keys","_createLines","yScalePrimary","yScaleSecondary","lines","borderForLines","dots","lineBorderWidth","lineOptions","Number","parseFloat","toString","xScaleBandwidthTranslate","bandwidth","shouldHighlight","i","x1","useSecondaryYScale","y1","x2","y2","key","opacity","strokeWidth","fill","strokeLinecap","stroke","colorNeutralBackground1","transform","strokeDasharray","onMouseOver","_lineHover","bind","onMouseLeave","circlePoint","subIndex","circleRef","refElement","noBarsAndLinesActive","circle","cx","cy","_onStackHover","r","_getCircleVisibilityAndRadius","radius","visibility","ref","e","tabIndex","hideTooltip","onFocus","_lineFocus","onBlur","_handleMouseOut","role","culture","XValue","YValue","_onRectHover","persist","_onRectFocusHover","chartDataPoint","xAxisDataPoint","_onRectFocus","_onStackFocus","groupRef","_getBarGapAndScale","bars","defaultTotalHeight","barGapMax","totalData","reduce","iter","value","abs","totalHeight","sumOfPercent","scalingRatio","gaps","gapHeight","heightValueScale","absStackTotal","yDomain","domain","range","bottom","xMax","xMin","nice","right","sDate","lDate","paddingInner","paddingOuter","_isChartEmpty","newX","newY","threshold","distance","sqrt","pow","_getDomainMargins","totalWidth","barGapRate","reqWidth","mode","margin1","step","margin2","_getChartTitle","chartTitle","numLines","classes","barCornerRadius","barMinimumHeight","shouldFocusWholeStack","indexNumber","xPoint","barTotalValue","barsToDisplay","yBaseline","yPositiveStart","yNegativeStart","yPoint","heightOfLastBar","singleBar","startColor","rectFocusProps","onMouseMove","onClick","barHeight","minHeight","gapOffset","Fragment","path","className","opacityChangeOnHover","d","rx","roundCorners","cursor","rect","stackFocusProps","showLabel","barLabel","hideLabels","g","id","text","textAnchor","aria-label","yAxisTickFormat","showXAxisLablesTooltip","document","getElementById","remove","wrapXAxisLables","xAxisElement","call","tooltipProps","tooltipCls","tooltip","axis","bar","_getMinMaxOfYAxis","yAxisType","values","startValue","endValue","legendBars","calloutProps","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","tickFormat","getMinMaxOfYAxis","createYAxis","datasetForXAxisDomain","getDomainNRangeValues","barwidth","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","children","div","style","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/VerticalStackedBarChart/VerticalStackedBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { useVerticalStackedBarChartStyles } from './useVerticalStackedBarChartStyles.styles';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n scaleTime as d3ScaleTime,\n} from 'd3-scale';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n AccessibilityProps,\n CartesianChart,\n ChildProps,\n VerticalStackedBarDataPoint,\n Margins,\n VerticalStackedBarChartProps,\n VerticalStackedChartProps,\n VSChartDataPoint,\n LineDataInVerticalStackedBarChart,\n ModifiedCartesianChartProps,\n Legend,\n ChartPopover,\n Legends,\n Chart,\n DataPoint,\n ImageExportOptions,\n LegendContainer,\n} from '../../index';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n formatDate,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n DataVizPalette,\n getColorFromToken,\n findVSBCNumericMinMaxOfY,\n YAxisType,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfVSBCNumeric,\n domainRangeOfXStringAxis,\n createStringYAxis,\n} from '../../utilities/index';\nimport { toImage } from '../../utilities/image-export-utils';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface RefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = LineDataInVerticalStackedBarChart & { index: number; xItem: VerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: VSChartDataPoint;\n};\n\nexport const VerticalStackedBarChart: React.FunctionComponent<VerticalStackedBarChartProps> = props => {\n const _isRtl: boolean = useRtl();\n const _createLegendsForLine: (data: VerticalStackedChartProps[]) => LineLegends[] = (\n data: VerticalStackedChartProps[],\n ) => _getLineLegends(data);\n const _tooltipId: string = useId('VSBCTooltipId_');\n const _emptyChartId: string = useId('_VSBC_empty');\n let _points: VerticalStackedChartProps[] = [];\n let _dataset: VerticalStackedBarDataPoint[];\n let _xAxisLabels: string[] = [];\n let _bars: JSX.Element[];\n let _xAxisType: XAxisTypes =\n props.data! && props.data!.length > 0\n ? (getTypeOfAxis(props.data[0]!.xAxisPoint, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n let _barWidth: number = 0;\n let _colors: string[];\n let _margins: Margins;\n let _lineObject: LineObject;\n let _yMax: number;\n let _yMin: number;\n let _calloutAnchorPoint: CalloutAnchorPointData | null;\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\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 [selectedLegends, setSelectedLegends] = React.useState(props.legendProps?.selectedLegends || []);\n const [activeLegend, setActiveLegend] = React.useState<string | undefined>(undefined);\n const [dataForHoverCard, setDataForHoverCard] = React.useState(0);\n const [color, setColor] = React.useState('');\n const [hoverXValue, setHoverXValue] = React.useState<string | number>('');\n const [YValueHover, setYValueHover] = React.useState<(LineDataInVerticalStackedBarChart | VSChartDataPoint)[]>([]);\n const [xCalloutValue, setXCalloutValue] = React.useState('');\n const [yCalloutValue, setYCalloutValue] = React.useState('');\n const [activeXAxisDataPoint, setActiveXAxisDataPoint] = React.useState<number | string | Date>('');\n const [calloutLegend, setCalloutLegend] = React.useState('');\n const [stackCalloutProps, setStackCalloutProps] = React.useState<VerticalStackedChartProps>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<VSChartDataPoint>();\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps>();\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\n const prevPropsRef = React.useRef<VerticalStackedBarChartProps | null>(null);\n React.useEffect(() => {\n if (prevPropsRef.current) {\n const prevProps = prevPropsRef.current;\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, props.legendProps?.selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n if (prevProps.height !== props.height || prevProps.width !== props.width || prevProps.data !== props.data) {\n _adjustProps();\n _dataset = _createDataSetLayer();\n }\n }\n prevPropsRef.current = props;\n }, [props]);\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, _isRtl, opts);\n },\n }),\n [],\n );\n\n function _getLegendData(data: VerticalStackedChartProps[], lineLegends: LineLegends[]): JSX.Element {\n if (props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color6),\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color5),\n getColorFromToken(DataVizPalette.color7),\n getColorFromToken(DataVizPalette.color10),\n ];\n const actions: Legend[] = [];\n const { allowHoverOnLegend = true } = props;\n\n data.forEach((singleChartData: VerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: VSChartDataPoint) => {\n const 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\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: allowHoverOnLegend\n ? () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => _onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: Legend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: Legend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n hoverAction: allowHoverOnLegend\n ? () => {\n _handleChartMouseLeave();\n _onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => _onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: Legend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={_onLegendSelectionChange}\n legendRef={_legendsRef}\n />\n );\n }\n\n function _getHighlightedLegend() {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }\n\n function _lineHoverOut() {\n setPopoverOpen(false);\n setXCalloutValue('');\n setYCalloutValue('');\n setActiveXAxisDataPoint('');\n setColor('');\n }\n\n function _lineHoverFocus(lineData: LinePoint) {\n setPopoverOpen(true);\n setXCalloutValue(`${lineData.xItem.xAxisPoint}`);\n setYCalloutValue(`${lineData.yAxisCalloutData || lineData.data || lineData.y}`);\n setActiveXAxisDataPoint(lineData.xItem.xAxisPoint);\n setColor(lineData.color);\n }\n\n function _onStackHoverFocus(\n stack: VerticalStackedChartProps,\n mouseEvent: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n let clientX = 0;\n let clientY = 0;\n if ('clientX' in mouseEvent) {\n clientX = mouseEvent.clientX;\n clientY = mouseEvent.clientY;\n } else {\n // Handle case where mouseEvent is an SVGGElement\n const boundingRect = mouseEvent.getBoundingClientRect();\n clientX = boundingRect.left + boundingRect.width / 2;\n clientY = boundingRect.top + boundingRect.height / 2;\n }\n if (!_noLegendHighlighted()) {\n stack = {\n ...stack,\n chartData: stack.chartData.filter((dataPoint: { legend: any }) => _isLegendHighlighted(dataPoint.legend)),\n lineData: stack.lineData?.filter((dataPoint: { legend: any }) => _isLegendHighlighted(dataPoint.legend)),\n };\n }\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: LineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n _updatePosition(clientX, clientY);\n setPopoverOpen(stack.chartData.length > 0 || (stack.lineData?.length ?? 0) > 0);\n setYValueHover(\n isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n );\n setHoverXValue(stack.xAxisPoint instanceof Date ? formatDate(stack.xAxisPoint, props.useUTC) : stack.xAxisPoint);\n setStackCalloutProps(stack);\n setActiveXAxisDataPoint(stack.xAxisPoint);\n setCallOutAccessibilityData(stack.stackCallOutAccessibilityData);\n }\n\n function _handleChartMouseLeave(): void {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n setActiveXAxisDataPoint('');\n }\n\n const _onClick = (\n data: VerticalStackedChartProps | VSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n props.onBarClick?.(mouseEvent, data);\n props.href ? (window.location.href = props.href) : '';\n };\n\n function _adjustProps(): void {\n _points = props.data || [];\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const defaultColors: string[] = [\n getColorFromToken(DataVizPalette.color6),\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color5),\n getColorFromToken(DataVizPalette.color7),\n getColorFromToken(DataVizPalette.color10),\n ];\n _colors = defaultColors;\n _xAxisType = getTypeOfAxis(props.data[0].xAxisPoint, true) as XAxisTypes;\n _lineObject = _getFormattedLineData(props.data);\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n props.xAxisPadding,\n _xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2,\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding, props.xAxisPadding, 0);\n }\n\n function _createDataSetLayer(): VerticalStackedBarDataPoint[] {\n const tempArr: string[] = [];\n const dataset: VerticalStackedBarDataPoint[] = _points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: VSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n _xAxisLabels = tempArr;\n return dataset;\n }\n\n function _onLegendHover(legendTitle: string): void {\n setActiveLegend(legendTitle);\n }\n\n function _onLegendLeave(): void {\n setActiveLegend(undefined);\n }\n\n function _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 function _getMargins(margins: Margins) {\n _margins = margins;\n }\n\n function _getGraphData(\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) {\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n return (_bars = _createBar(xBarScale, yBarScale, containerHeight, xElement!));\n }\n\n function _getAxisData(yAxisData: IAxisData) {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || Y_ORIGIN);\n _yMin = Math.min(domainValue[0], props.yMinValue || Y_ORIGIN);\n }\n }\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n function _isLegendHighlighted(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 function _noLegendHighlighted() {\n return _getHighlightedLegend().length === 0;\n }\n\n function _getAriaLabel(singleChartData: VerticalStackedChartProps, point?: VSChartDataPoint): string {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDate(singleChartData.xAxisPoint)\n : singleChartData.xAxisPoint);\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue =\n singleChartData.xAxisCalloutData ||\n point.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDate(singleChartData.xAxisPoint)\n : singleChartData.xAxisPoint);\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n function _getCustomizedCallout() {\n const _isHavingLines = props.data.some(\n (item: VerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return props.onRenderCalloutPerStack\n ? props.onRenderCalloutPerStack(stackCalloutProps)\n : props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps, _renderCallout)\n : null;\n }\n\n function _toFocusWholeStack(_isHavingLines: boolean): boolean {\n const { isCalloutForStack = false } = props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (_getHighlightedLegend().length === 1) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n }\n\n function _getDomainNRangeValues(\n points: DataPoint[],\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) {\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n function _getFormattedLineData(data: VerticalStackedChartProps[]): LineObject {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: VerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n item.lineData.forEach((line: any) => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n }\n\n function _getLineLegends(data: VerticalStackedChartProps[]): LineLegends[] {\n const lineObject: LineObject = _lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n }\n\n function _createLines(\n xScale: any,\n yScalePrimary: NumericScale,\n containerHeight: number,\n containerWidth: number,\n yScaleSecondary?: NumericScale,\n ): JSX.Element {\n const lineObject: LineObject = _getFormattedLineData(props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n //const { theme } = props;\n const lineBorderWidth = props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n const xScaleBandwidthTranslate = _xAxisType !== XAxisTypes.StringAxis ? 0 : xScale.bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = _isLegendHighlighted(item) || _noLegendHighlighted();\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = xScale(lineObject[item][i - 1].xItem.xAxisPoint);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && yScaleSecondary;\n const y1 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i - 1].y)\n : yScalePrimary(lineObject[item][i - 1].y);\n const x2 = xScale(lineObject[item][i].xItem.xAxisPoint);\n const y2 = useSecondaryYScale ? yScaleSecondary!(lineObject[item][i].y) : yScalePrimary(lineObject[item][i].y);\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={tokens.colorNeutralBackground1}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={lineObject[item][0].lineOptions?.strokeWidth ?? 3}\n strokeLinecap={lineObject[item][0].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={lineObject[item][0].lineOptions?.strokeDasharray}\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...(_isLegendHighlighted(item) && {\n onMouseOver: _lineHover.bind(lineObject[item][i - 1]),\n onMouseLeave: _lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n const noBarsAndLinesActive =\n circlePoint.xItem.chartData.filter(\n dataPoint => _noLegendHighlighted() || _isLegendHighlighted(dataPoint.legend),\n ).length === 0;\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={xScale(circlePoint.xItem.xAxisPoint)}\n cy={\n circlePoint.useSecondaryYScale && yScaleSecondary\n ? yScaleSecondary(circlePoint.y)\n : yScalePrimary(circlePoint.y)\n }\n onMouseOver={\n _isLegendHighlighted(item)\n ? (event: React.MouseEvent<SVGElement, MouseEvent>) => _lineHover(circlePoint, event)\n : (event: React.MouseEvent<SVGElement, MouseEvent>) => _onStackHover(circlePoint.xItem, event)\n }\n {...(_isLegendHighlighted(item) && {\n onMouseLeave: _lineHoverOut,\n })}\n r={_getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={tokens.colorNeutralBackground1}\n strokeWidth={3}\n visibility={_getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n ref={e => (circleRef.refElement = e)}\n {...(noBarsAndLinesActive\n ? {\n tabIndex: !props.hideTooltip ? 0 : undefined,\n onFocus: event => _lineFocus(event, circlePoint, circleRef),\n onBlur: _handleMouseOut,\n role: 'img',\n 'aria-label': _getAriaLabel(circlePoint.xItem, circlePoint as VSChartDataPoint),\n }\n : {})}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n }\n\n function _getCircleVisibilityAndRadius(\n xAxisPoint: string | number | Date,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } {\n if (!_noLegendHighlighted()) {\n if (xAxisPoint === activeXAxisDataPoint && _isLegendHighlighted(legend)) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (_isLegendHighlighted(legend)) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxisPoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n }\n\n function _renderCallout(props?: VSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartPopover\n culture={props.culture ?? 'en-us'}\n XValue={props.xAxisCalloutData}\n xCalloutValue={xCalloutValue}\n yCalloutValue={yCalloutValue}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n />\n ) : null;\n }\n\n function _onRectHover(\n xAxisPoint: string | number | Date,\n point: VSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n _onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n function _onRectFocusHover(\n xAxisPoint: string | number | Date,\n point: VSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement> | SVGGElement,\n ) {\n let clientX = 0;\n let clientY = 0;\n if ('clientX' in mouseEvent) {\n clientX = mouseEvent.clientX;\n clientY = mouseEvent.clientY;\n } else {\n // Handle case where mouseEvent is an SVGGElement\n const boundingRect = mouseEvent.getBoundingClientRect();\n clientX = boundingRect.left + boundingRect.width / 2;\n clientY = boundingRect.top + boundingRect.height / 2;\n }\n if (_calloutAnchorPoint?.chartDataPoint !== point || _calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n _calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint: `${xAxisPoint}`,\n };\n _updatePosition(clientX, clientY);\n setPopoverOpen(_noLegendHighlighted() || _isLegendHighlighted(point.legend));\n setCalloutLegend(point.legend);\n setDataForHoverCard(point.data);\n setColor(color);\n setXCalloutValue(point.xAxisCalloutData ? point.xAxisCalloutData : `${xAxisPoint}`);\n setYCalloutValue(point.yAxisCalloutData!);\n setDataPointCalloutProps(point);\n setCallOutAccessibilityData(point.callOutAccessibilityData);\n }\n }\n\n function _lineHover(lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) {\n mouseEvent.persist();\n _lineHoverFocus(lineData);\n }\n\n function _lineFocus(\n event: React.FocusEvent<SVGCircleElement, Element>,\n lineData: LinePoint,\n ref: { refElement: SVGCircleElement | null },\n ) {\n if (ref.refElement) {\n _lineHoverFocus(lineData);\n }\n }\n\n function _onStackHover(stack: VerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n _onStackHoverFocus(stack, mouseEvent);\n }\n\n function _onRectFocus(point: VSChartDataPoint, xAxisPoint: string, color: string, ref: RefArrayData): void {\n if (ref.refElement) {\n _onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n function _onStackFocus(stack: VerticalStackedChartProps, groupRef: RefArrayData): void {\n if (groupRef.refElement) {\n _onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n function _handleMouseOut(): void {\n setPopoverOpen(false);\n }\n\n function _getBarGapAndScale(\n bars: VSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n readonly absStackTotal: number;\n } {\n const { barGapMax = 0 } = props;\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + Math.abs(value.data), 0);\n const totalHeight = defaultTotalHeight ?? Math.abs(yBarScale(totalData) - yBarScale(Y_ORIGIN));\n let sumOfPercent = 0;\n bars.forEach(point => {\n let value = (Math.abs(point.data) / totalData) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n });\n const scalingRatio = sumOfPercent !== 0 ? sumOfPercent / 100 : 1;\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / (totalData * scalingRatio);\n return {\n gapHeight,\n heightValueScale,\n absStackTotal: totalData,\n } as const;\n }\n\n function _getScales(containerHeight: number, containerWidth: number) {\n const yDomain = [Math.min(Y_ORIGIN, _yMin), Math.max(Y_ORIGIN, _yMax)];\n const yBarScale = d3ScaleLinear()\n .domain(yDomain)\n .range([0, containerHeight - _margins.bottom! - _margins.top!]);\n if (_xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(_dataset, (point: VerticalStackedBarDataPoint) => point.x as number)!;\n const xMin = d3Min(_dataset, (point: VerticalStackedBarDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(_isRtl ? [xMax, xMin] : [xMin, xMax])\n .range([_margins.left! + _domainMargin, containerWidth - _margins.right! - _domainMargin]);\n if (!isScalePaddingDefined(props.xAxisInnerPadding, props.xAxisPadding)) {\n xBarScale.nice();\n }\n return { xBarScale, yBarScale };\n }\n if (_xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(_dataset, (point: VerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const lDate = d3Max(_dataset, (point: VerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const xBarScale = props.useUTC ? d3ScaleUtc() : d3ScaleTime();\n xBarScale\n .domain(_isRtl ? [lDate, sDate] : [sDate, lDate])\n .range([_margins.left! + _domainMargin, containerWidth - _margins.right! - _domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n const xBarScale = d3ScaleBand()\n .domain(_xAxisLabels)\n .range(\n _isRtl\n ? [containerWidth - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n\n return { xBarScale, yBarScale };\n }\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.some(item => item.chartData.length > 0 || (item.lineData && item.lineData.length > 0))\n );\n };\n\n function _updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n function _getDomainMargins(containerWidth: number): Margins {\n _domainMargin = MIN_DOMAIN_MARGIN;\n\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 bars changes wrt the bar width */\n const barGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding, props.xAxisPadding)) {\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 bar and after the last bar.\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 /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * _barWidth;\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 bars at their maximum allowable width\n const bandwidth = totalWidth / (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, bandwidth);\n let reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * barWidth;\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 } else {\n const data = (props.data?.map(point => point.xAxisPoint) as number[] | Date[] | undefined) || [];\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n calculateAppropriateBarWidth(data, totalWidth, _xAxisInnerPadding),\n );\n _domainMargin = MIN_DOMAIN_MARGIN + _barWidth / 2;\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n }\n\n function _getChartTitle(): string {\n const { chartTitle, data } = props;\n const numLines = Object.keys(_lineObject).length;\n return (\n (chartTitle ? `${chartTitle}. ` : '') +\n `Vertical bar chart with ${data?.length || 0} stacked bars` +\n (numLines > 0 ? ` and ${numLines} lines` : '') +\n '. '\n );\n }\n\n const classes = useVerticalStackedBarChartStyles(props);\n function _createBar(\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = props;\n const _isHavingLines = props.data.some(\n (item: VerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = _toFocusWholeStack(_isHavingLines);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth, xBarScale.bandwidth());\n }\n\n const bars = _points.map((singleChartData: VerticalStackedChartProps, indexNumber: number) => {\n const xPoint = xBarScale(\n _xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : _xAxisType === XAxisTypes.DateAxis\n ? (singleChartData.xAxisPoint as Date)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n _xAxisType !== XAxisTypes.StringAxis ? -_barWidth / 2 : (xBarScale.bandwidth() - _barWidth) / 2;\n\n let barTotalValue = 0;\n\n const barsToDisplay = singleChartData.chartData.filter(point => point.data !== 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale, absStackTotal } = _getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const yBaseline = containerHeight - _margins.bottom! - yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = 0;\n let heightOfLastBar = 0;\n\n const singleBar = barsToDisplay.map((point: VSChartDataPoint, index: number) => {\n const startColor = point.color ? point.color : _colors[index];\n const ref: RefArrayData = {};\n const shouldHighlight = _isLegendHighlighted(point.legend) || _noLegendHighlighted() ? true : false;\n const rectFocusProps = !shouldFocusWholeStack && {\n 'aria-label': _getAriaLabel(singleChartData, point),\n onMouseOver: (event: React.MouseEvent<SVGElement, MouseEvent>) =>\n _onRectHover(singleChartData.xAxisPoint, point, startColor, event),\n onMouseMove: (event: React.MouseEvent<SVGElement, MouseEvent>) =>\n _onRectHover(singleChartData.xAxisPoint, point, startColor, event),\n onMouseLeave: _handleMouseOut,\n onFocus: () => _onRectFocus(point, singleChartData.xAxisPoint as string, startColor, ref),\n onBlur: _handleMouseOut,\n onClick: (event: React.MouseEvent<SVGElement, MouseEvent>) => _onClick(point, event),\n role: 'img',\n tabIndex: !props.hideTooltip && shouldHighlight ? 0 : undefined,\n };\n\n let barHeight = Math.abs(heightValueScale * point.data);\n // FIXME: The current scaling logic may produce different min and gap heights for each bar stack.\n const minHeight = Math.max((heightValueScale * absStackTotal) / 100.0, barMinimumHeight);\n if (barHeight < minHeight) {\n barHeight = minHeight;\n }\n const gapOffset = index ? gapHeight : 0;\n if (point.data >= Y_ORIGIN) {\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + gapOffset;\n yNegativeStart = yPoint + barHeight;\n }\n\n barTotalValue += point.data;\n heightOfLastBar = index === barsToDisplay.length - 1 ? barHeight : 0;\n\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <React.Fragment key={index + indexNumber + `${shouldFocusWholeStack}`}>\n <path\n className={classes.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${_barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-_barWidth}\n z\n `}\n fill={startColor}\n rx={props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n cursor={props.href ? 'pointer' : 'default'}\n {...rectFocusProps}\n />\n </React.Fragment>\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <React.Fragment key={index + indexNumber}>\n <rect\n className={classes.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={_barWidth}\n height={barHeight}\n fill={startColor}\n opacity={shouldHighlight ? 1 : 0.1}\n cursor={props.href ? 'pointer' : 'default'}\n rx={props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n </React.Fragment>\n );\n });\n const groupRef: RefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'aria-label': _getAriaLabel(singleChartData),\n onMouseOver: (event: any) => _onStackHover(singleChartData, event),\n onMouseMove: (event: any) => _onStackHover(singleChartData, event),\n onMouseLeave: _handleMouseOut,\n onFocus: () => _onStackFocus(singleChartData, groupRef),\n onBlur: _handleMouseOut,\n onClick: (event: any) => _onClick(singleChartData, event),\n role: 'img',\n tabIndex: !props.hideTooltip ? 0 : undefined,\n };\n let showLabel = false;\n let barLabel = 0;\n if (!props.hideLabels) {\n if (_noLegendHighlighted()) {\n showLabel = true;\n barLabel = barTotalValue;\n } else {\n barsToDisplay.forEach(point => {\n if (_isLegendHighlighted(point.legend)) {\n showLabel = true;\n barLabel += point.data;\n }\n });\n }\n }\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {!props.hideLabels && _barWidth >= 16 && showLabel && (\n <text\n x={xPoint + _barWidth / 2}\n //if total bar value >=0, show label above top bar, otherwise below bottom bar\n y={barLabel >= Y_ORIGIN ? yPoint - 6 : yPoint + heightOfLastBar + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-label={`Total: ${barLabel}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(barLabel)\n : formatScientificLimitWidth(barLabel)}\n </text>\n )}\n </g>\n );\n });\n if (!props.showXAxisLablesTooltip) {\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\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 bars.filter((bar): bar is JSX.Element => !!bar);\n }\n\n function _getMinMaxOfYAxis(\n dataset: DataPoint[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } {\n if (!useSecondaryYScale) {\n return findVSBCNumericMinMaxOfY(dataset);\n }\n\n const values: number[] = [];\n props.data.forEach(xPoint => {\n xPoint.lineData?.forEach(point => {\n // useSecondaryYScale is applicable only for lines in VSBC\n if (point.useSecondaryYScale) {\n values.push(point.y);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n if (!_isChartEmpty()) {\n _adjustProps();\n const _isHavingLines = props.data.some(\n (item: VerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = _toFocusWholeStack(_isHavingLines);\n _dataset = _createDataSetLayer();\n const legendBars: JSX.Element = _getLegendData(_points, _createLegendsForLine(props.data));\n const calloutProps: ModifiedCartesianChartProps['calloutProps'] = {\n color: color,\n legend: calloutLegend,\n XValue: xCalloutValue!,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover: YValueHover,\n hoverXValue: hoverXValue,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData),\n clickPosition: clickPosition,\n isPopoverOpen: isPopoverOpen,\n isCalloutForStack:\n props.isCalloutForStack || (_isHavingLines && (_noLegendHighlighted() || _getHighlightedLegend().length > 1)),\n isCartesian: true,\n customCallout: {\n customizedCallout: _getCustomizedCallout() !== null ? _getCustomizedCallout()! : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(dataPointCalloutProps!)\n : undefined,\n },\n };\n const tickParams = {\n tickValues: props.tickValues,\n tickFormat: props.tickFormat,\n };\n return (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={_xAxisType}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={_xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n getDomainNRangeValues={_getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n barwidth={_barWidth}\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 componentRef={cartesianChartRef}\n showRoundOffXTickValues={!isScalePaddingDefined(props.xAxisInnerPadding, props.xAxisPadding)}\n /* eslint-disable react/jsx-no-bind */\n children={(props: ChildProps) => {\n return (\n <>\n <g>{_bars}</g>\n <g>\n {_isHavingLines &&\n _createLines(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />;\n};\nVerticalStackedBarChart.displayName = 'VerticalStackedBarChart';\n"],"names":["React","max","d3Max","min","d3Min","select","d3Select","useVerticalStackedBarChartStyles","scaleLinear","d3ScaleLinear","scaleBand","d3ScaleBand","scaleUtc","d3ScaleUtc","scaleTime","d3ScaleTime","useId","tokens","CartesianChart","ChartPopover","Legends","ChartTypes","getAccessibleDataObject","XAxisTypes","getTypeOfAxis","tooltipOfAxislabels","formatScientificLimitWidth","getBarWidth","getScalePadding","isScalePaddingDefined","calculateAppropriateBarWidth","formatDate","areArraysEqual","calculateLongestLabelWidth","useRtl","DataVizPalette","getColorFromToken","findVSBCNumericMinMaxOfY","createNumericYAxis","domainRangeOfDateForAreaLineVerticalBarChart","domainRangeOfVSBCNumeric","domainRangeOfXStringAxis","createStringYAxis","toImage","barGapMultiplier","barGapMin","MIN_DOMAIN_MARGIN","CircleVisbility","VerticalStackedBarChart","props","_isRtl","_createLegendsForLine","data","_getLineLegends","_tooltipId","_emptyChartId","_points","_dataset","_xAxisLabels","_bars","_xAxisType","length","xAxisPoint","StringAxis","_barWidth","_colors","_margins","_lineObject","_yMax","_yMin","_calloutAnchorPoint","_domainMargin","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","_legendsRef","selectedLegends","setSelectedLegends","useState","legendProps","activeLegend","setActiveLegend","undefined","dataForHoverCard","setDataForHoverCard","color","setColor","hoverXValue","setHoverXValue","YValueHover","setYValueHover","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","activeXAxisDataPoint","setActiveXAxisDataPoint","calloutLegend","setCalloutLegend","stackCalloutProps","setStackCalloutProps","dataPointCalloutProps","setDataPointCalloutProps","callOutAccessibilityData","setCallOutAccessibilityData","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","prevPropsRef","useEffect","current","prevProps","height","width","_adjustProps","_createDataSetLayer","useImperativeHandle","componentRef","chartContainer","opts","toSVG","_getLegendData","lineLegends","hideLegend","defaultPalette","color6","color1","color5","color7","color10","actions","allowHoverOnLegend","forEach","singleChartData","chartData","point","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","push","legendsOfLine","isLineLegendInBarChart","totalLegends","concat","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","onChange","_onLegendSelectionChange","legendRef","_getHighlightedLegend","_lineHoverOut","_lineHoverFocus","lineData","xItem","yAxisCalloutData","_onStackHoverFocus","stack","mouseEvent","clientX","clientY","boundingRect","getBoundingClientRect","left","top","_noLegendHighlighted","dataPoint","_isLegendHighlighted","isLinesPresent","item","shouldDrawBorderBottom","_updatePosition","sort","a","b","slice","reverse","Date","useUTC","stackCallOutAccessibilityData","_onClick","onBarClick","href","window","location","barWidth","maxBarWidth","defaultColors","_getFormattedLineData","xAxisInnerPadding","xAxisPadding","xAxisOuterPadding","tempArr","dataset","map","singlePointData","total","legendTitle","_selectedLegends","event","currentLegend","canSelectMultipleLegends","_getMargins","margins","_getGraphData","xScale","yScale","containerHeight","containerWidth","xElement","xBarScale","yBarScale","_getScales","_createBar","_getAxisData","yAxisData","yAxisDomainValues","domainValue","yMaxValue","yMinValue","includes","_getAriaLabel","xValue","xAxisCalloutData","pointValues","pt","yValue","join","lineValues","ln","ariaLabel","_getCustomizedCallout","_isHavingLines","some","onRenderCalloutPerStack","onRenderCalloutPerDataPoint","_renderCallout","_toFocusWholeStack","isCalloutForStack","shouldFocusStackOnly","_getDomainNRangeValues","points","chartType","isRTL","xAxisType","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","linesData","formattedLineData","index","line","lineObject","Object","keys","_createLines","yScalePrimary","yScaleSecondary","lines","borderForLines","dots","lineBorderWidth","lineOptions","Number","parseFloat","toString","xScaleBandwidthTranslate","bandwidth","shouldHighlight","i","x1","useSecondaryYScale","y1","x2","y2","key","opacity","strokeWidth","fill","strokeLinecap","stroke","colorNeutralBackground1","transform","strokeDasharray","onMouseOver","_lineHover","bind","onMouseLeave","circlePoint","subIndex","circleRef","refElement","noBarsAndLinesActive","circle","cx","cy","_onStackHover","r","_getCircleVisibilityAndRadius","radius","visibility","ref","e","tabIndex","hideTooltip","onFocus","_lineFocus","onBlur","_handleMouseOut","role","culture","XValue","YValue","_onRectHover","persist","_onRectFocusHover","chartDataPoint","xAxisDataPoint","_onRectFocus","_onStackFocus","groupRef","_getBarGapAndScale","bars","defaultTotalHeight","barGapMax","totalData","reduce","iter","value","abs","totalHeight","sumOfPercent","scalingRatio","gaps","gapHeight","heightValueScale","absStackTotal","yDomain","domain","range","bottom","xMax","xMin","right","nice","sDate","lDate","paddingInner","paddingOuter","_isChartEmpty","newX","newY","threshold","distance","sqrt","pow","_getDomainMargins","totalWidth","barGapRate","reqWidth","mode","margin1","margin2","POSITIVE_INFINITY","hideTickOverlap","step","_getChartTitle","chartTitle","numLines","classes","barCornerRadius","barMinimumHeight","shouldFocusWholeStack","indexNumber","xPoint","barTotalValue","barsToDisplay","yBaseline","yPositiveStart","yNegativeStart","yPoint","heightOfLastBar","singleBar","startColor","rectFocusProps","onMouseMove","onClick","barHeight","minHeight","gapOffset","Fragment","path","className","opacityChangeOnHover","d","rx","roundCorners","cursor","rect","stackFocusProps","showLabel","barLabel","hideLabels","g","id","text","textAnchor","aria-label","yAxisTickFormat","showXAxisLablesTooltip","document","getElementById","remove","wrapXAxisLables","xAxisElement","call","tooltipProps","tooltipCls","tooltip","axis","bar","_getMinMaxOfYAxis","yAxisType","values","startValue","endValue","legendBars","calloutProps","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","tickFormat","getMinMaxOfYAxis","createYAxis","datasetForXAxisDomain","getDomainNRangeValues","barwidth","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","showRoundOffXTickValues","children","div","style","displayName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["VerticalStackedBarChart.types.ts"],"sourcesContent":["import * as React from 'react';\n//import { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { RenderFunction } from '../../utilities/index';\nimport {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n LineChartLineOptions,\n VerticalStackedChartProps,\n VSChartDataPoint,\n} from '../../index';\n\n/**\n * Vertical Stacked Bar Chart properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface VerticalStackedBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: VerticalStackedChartProps[];\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 */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: Partial<VerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: RenderFunction<VerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: RenderFunction<VSChartDataPoint>;\n\n /**\n * yMinValue is supported for bar charts that has only lines\n */\n yMinValue?: number | undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: VerticalStackedChartProps | VSChartDataPoint) => void;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: LineChartLineOptions;\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 * @default false\n * The prop used to enable gradient fill color for the chart.\n */\n enableGradient?: boolean;\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n}\n\n/**\n * Vertical Stacked Bar Chart style properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface VerticalStackedBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Stacked Bar Chart styles\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface VerticalStackedBarChartStyles extends CartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: string;\n\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":["React"],"mappings":";;;;;iEAAuB,QAAQ"}
1
+ {"version":3,"sources":["../src/components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"sourcesContent":["import * as React from 'react';\n//import { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { RenderFunction } from '../../utilities/index';\nimport {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n LineChartLineOptions,\n VerticalStackedChartProps,\n VSChartDataPoint,\n} from '../../index';\n\n/**\n * Vertical Stacked Bar Chart properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface VerticalStackedBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: VerticalStackedChartProps[];\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 */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: Partial<VerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: RenderFunction<VerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: RenderFunction<VSChartDataPoint>;\n\n /**\n * yMinValue is supported for bar charts that has only lines\n */\n yMinValue?: number | undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: VerticalStackedChartProps | VSChartDataPoint) => void;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: LineChartLineOptions;\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 * @default false\n * The prop used to enable gradient fill color for the chart.\n */\n enableGradient?: boolean;\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n}\n\n/**\n * Vertical Stacked Bar Chart style properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface VerticalStackedBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Stacked Bar Chart styles\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface VerticalStackedBarChartStyles extends CartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: string;\n\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":["React"],"mappings":";;;;;iEAAuB,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './VerticalStackedBarChart';\nexport * from './VerticalStackedBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"mappings":";;;;;uBAAc,4BAA4B;uBAC5B,kCAAkC;uBAClC,oBAAoB"}
1
+ {"version":3,"sources":["../src/components/VerticalStackedBarChart/index.ts"],"sourcesContent":["export * from './VerticalStackedBarChart';\nexport * from './VerticalStackedBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"mappings":";;;;;uBAAc,4BAA4B;uBAC5B,kCAAkC;uBAClC,oBAAoB"}
@@ -112,4 +112,4 @@ const useVerticalStackedBarChartStyles = (props)=>{
112
112
  tooltip: (0, _react.mergeClasses)(verticalstackedbarchartClassNames.tooltip, baseStyles.tooltip),
113
113
  barLabel: (0, _react.mergeClasses)(verticalstackedbarchartClassNames.barLabel, baseStyles.barLabel)
114
114
  };
115
- }; //# sourceMappingURL=useVerticalStackedBarChartStyles.styles.js.map
115
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["useVerticalStackedBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const verticalstackedbarchartClassNames = {\n opacityChangeOnHover: 'fui-vsbc__opacityChangeOnHover',\n tooltip: 'fui-vsbc__tooltip',\n barLabel: 'fui-vsbc__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 borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none'\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n }\n});\nexport const useVerticalStackedBarChartStyles = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(verticalstackedbarchartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover, props.href ? 'pointer' : 'default'),\n tooltip: mergeClasses(verticalstackedbarchartClassNames.tooltip, baseStyles.tooltip),\n barLabel: mergeClasses(verticalstackedbarchartClassNames.barLabel, baseStyles.barLabel)\n };\n};\n"],"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","verticalstackedbarchartClassNames","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","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","Bvjb7m6","d","p","useVerticalStackedBarChartStyles","props","baseStyles","href"],"mappings":";;;;;;;;;;;oCAyC6C;;;IAvChCK,iCAAiC;;;;uBAFO,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,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;IAAA;IAAAlC,QAAA,EAAA;QAAAe,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAU,OAAA,EAAA;QAAAO,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;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA,CAqBjB,CAAC;AACK,MAAMC,oCAAoCC,KAAK,IAAG;IACrD,MAAMC,UAAU,GAAG3B,SAAS,CAAC,CAAC;IAC9B,OAAO;QACHf,oBAAoB,MAAEL,mBAAY,EAACI,iCAAiC,CAACC,oBAAoB,EAAE0C,UAAU,CAAC1C,oBAAoB,EAAEyC,KAAK,CAACE,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;QAC/J1C,OAAO,EAAEN,uBAAY,EAACI,iCAAiC,CAACE,OAAO,EAAEyC,UAAU,CAACzC,OAAO,CAAC;QACpFC,QAAQ,MAAEP,mBAAY,EAACI,iCAAiC,CAACG,QAAQ,EAAEwC,UAAU,CAACxC,QAAQ;IAC1F,CAAC;AACL,CAAC"}
1
+ {"version":3,"sources":["useVerticalStackedBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const verticalstackedbarchartClassNames = {\n opacityChangeOnHover: 'fui-vsbc__opacityChangeOnHover',\n tooltip: 'fui-vsbc__tooltip',\n barLabel: 'fui-vsbc__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 borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none'\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n }\n});\nexport const useVerticalStackedBarChartStyles = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(verticalstackedbarchartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover, props.href ? 'pointer' : 'default'),\n tooltip: mergeClasses(verticalstackedbarchartClassNames.tooltip, baseStyles.tooltip),\n barLabel: mergeClasses(verticalstackedbarchartClassNames.barLabel, baseStyles.barLabel)\n };\n};\n"],"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","verticalstackedbarchartClassNames","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","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","Bvjb7m6","d","p","useVerticalStackedBarChartStyles","props","baseStyles","href"],"mappings":";;;;;;;;;;;oCAyC6C;eAAhC8C;;IAvCAzC,iCAAiC;;;;uBAFO,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,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;IAAA;IAAAlC,QAAA,EAAA;QAAAe,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAU,OAAA,EAAA;QAAAO,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;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA,CAqBjB,CAAC;AACK,0CAA0CE,KAAK,IAAG;IACrD,MAAMC,UAAU,GAAG3B,SAAS,CAAC,CAAC;IAC9B,OAAO;QACHf,oBAAoB,MAAEL,mBAAY,EAACI,iCAAiC,CAACC,oBAAoB,EAAE0C,UAAU,CAAC1C,oBAAoB,EAAEyC,KAAK,CAACE,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;QAC/J1C,OAAO,MAAEN,mBAAY,EAACI,iCAAiC,CAACE,OAAO,EAAEyC,UAAU,CAACzC,OAAO,CAAC;QACpFC,QAAQ,MAAEP,mBAAY,EAACI,iCAAiC,CAACG,QAAQ,EAAEwC,UAAU,CAACxC,QAAQ;IAC1F,CAAC;AACL,CAAC"}