@fluentui/react-charts 9.0.2 → 9.0.4

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 (229) hide show
  1. package/CHANGELOG.md +64 -7
  2. package/dist/index.d.ts +829 -94
  3. package/lib/AreaChart.js +1 -0
  4. package/lib/AreaChart.js.map +1 -0
  5. package/lib/HeatMapChart.js +1 -0
  6. package/lib/HeatMapChart.js.map +1 -0
  7. package/lib/HorizontalBarChartWithAxis.js +1 -0
  8. package/lib/HorizontalBarChartWithAxis.js.map +1 -0
  9. package/lib/SankeyChart.js +1 -0
  10. package/lib/SankeyChart.js.map +1 -0
  11. package/lib/VerticalStackedBarChart.js +1 -0
  12. package/lib/VerticalStackedBarChart.js.map +1 -0
  13. package/lib/components/AreaChart/AreaChart.js +775 -0
  14. package/lib/components/AreaChart/AreaChart.js.map +1 -0
  15. package/lib/components/AreaChart/AreaChart.types.js +4 -0
  16. package/lib/components/AreaChart/AreaChart.types.js.map +1 -0
  17. package/lib/components/AreaChart/index.js +3 -0
  18. package/lib/components/AreaChart/index.js.map +1 -0
  19. package/lib/components/AreaChart/useAreaChartStyles.styles.js +55 -0
  20. package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -0
  21. package/lib/components/CommonComponents/CartesianChart.js +30 -14
  22. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  23. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  24. package/lib/components/CommonComponents/ChartPopover.js +2 -2
  25. package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
  26. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +7 -123
  27. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  28. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +11 -22
  29. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
  30. package/lib/components/DeclarativeChart/DeclarativeChart.js +112 -65
  31. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  32. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +570 -159
  33. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  34. package/lib/components/DonutChart/Arc/Arc.js +1 -1
  35. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  36. package/lib/components/DonutChart/DonutChart.js +1 -1
  37. package/lib/components/DonutChart/DonutChart.js.map +1 -1
  38. package/lib/components/DonutChart/Pie/usePieStyles.styles.js +2 -6
  39. package/lib/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -1
  40. package/lib/components/GaugeChart/GaugeChart.js +4 -1
  41. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  42. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  43. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +13 -9
  44. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  45. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +9 -0
  46. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  47. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +0 -9
  48. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  49. package/lib/components/HeatMapChart/HeatMapChart.js +588 -0
  50. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -0
  51. package/lib/components/HeatMapChart/HeatMapChart.types.js +4 -0
  52. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -0
  53. package/lib/components/HeatMapChart/index.js +3 -0
  54. package/lib/components/HeatMapChart/index.js.map +1 -0
  55. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +37 -0
  56. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -0
  57. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +2 -9
  58. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
  59. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +571 -0
  60. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -0
  61. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js +4 -0
  62. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -0
  63. package/lib/components/HorizontalBarChartWithAxis/index.js +3 -0
  64. package/lib/components/HorizontalBarChartWithAxis/index.js.map +1 -0
  65. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +67 -0
  66. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -0
  67. package/lib/components/Legends/Legends.js +38 -37
  68. package/lib/components/Legends/Legends.js.map +1 -1
  69. package/lib/components/Legends/useLegendsStyles.styles.js +2 -3
  70. package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
  71. package/lib/components/LineChart/LineChart.js +43 -35
  72. package/lib/components/LineChart/LineChart.js.map +1 -1
  73. package/lib/components/LineChart/useLineChartStyles.styles.js +1 -10
  74. package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  75. package/lib/components/SankeyChart/SankeyChart.js +1023 -0
  76. package/lib/components/SankeyChart/SankeyChart.js.map +1 -0
  77. package/lib/components/SankeyChart/SankeyChart.types.js +3 -0
  78. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -0
  79. package/lib/components/SankeyChart/index.js +3 -0
  80. package/lib/components/SankeyChart/index.js.map +1 -0
  81. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +109 -0
  82. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -0
  83. package/lib/components/ScatterChart/ScatterChart.js +46 -59
  84. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  85. package/lib/components/ScatterChart/useScatterChartStyles.styles.js +1 -10
  86. package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  87. package/lib/components/VerticalBarChart/VerticalBarChart.js +165 -88
  88. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  89. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  90. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +3 -11
  91. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  92. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +904 -0
  93. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -0
  94. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +1 -0
  95. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -0
  96. package/lib/components/VerticalStackedBarChart/index.js +3 -0
  97. package/lib/components/VerticalStackedBarChart/index.js.map +1 -0
  98. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +65 -0
  99. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -0
  100. package/lib/index.js +5 -0
  101. package/lib/index.js.map +1 -1
  102. package/lib/types/DataPoint.js +1 -3
  103. package/lib/types/DataPoint.js.map +1 -1
  104. package/lib/utilities/SVGTooltipText.js +49 -4
  105. package/lib/utilities/SVGTooltipText.js.map +1 -1
  106. package/lib/utilities/colors.js +20 -0
  107. package/lib/utilities/colors.js.map +1 -1
  108. package/lib/utilities/string.js +32 -0
  109. package/lib/utilities/string.js.map +1 -0
  110. package/lib/utilities/test-data.js +53 -0
  111. package/lib/utilities/test-data.js.map +1 -1
  112. package/lib/utilities/utilities.js +90 -18
  113. package/lib/utilities/utilities.js.map +1 -1
  114. package/lib-commonjs/AreaChart.js +6 -0
  115. package/lib-commonjs/AreaChart.js.map +1 -0
  116. package/lib-commonjs/HeatMapChart.js +6 -0
  117. package/lib-commonjs/HeatMapChart.js.map +1 -0
  118. package/lib-commonjs/HorizontalBarChartWithAxis.js +6 -0
  119. package/lib-commonjs/HorizontalBarChartWithAxis.js.map +1 -0
  120. package/lib-commonjs/SankeyChart.js +6 -0
  121. package/lib-commonjs/SankeyChart.js.map +1 -0
  122. package/lib-commonjs/VerticalStackedBarChart.js +6 -0
  123. package/lib-commonjs/VerticalStackedBarChart.js.map +1 -0
  124. package/lib-commonjs/components/AreaChart/AreaChart.js +781 -0
  125. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -0
  126. package/lib-commonjs/components/AreaChart/AreaChart.types.js +7 -0
  127. package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -0
  128. package/lib-commonjs/components/AreaChart/index.js +8 -0
  129. package/lib-commonjs/components/AreaChart/index.js.map +1 -0
  130. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +95 -0
  131. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -0
  132. package/lib-commonjs/components/CommonComponents/CartesianChart.js +29 -14
  133. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  134. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  135. package/lib-commonjs/components/CommonComponents/ChartPopover.js +2 -2
  136. package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
  137. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +8 -198
  138. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  139. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +12 -37
  140. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
  141. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +120 -73
  142. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  143. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +592 -178
  144. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  145. package/lib-commonjs/components/DonutChart/Arc/Arc.js +1 -1
  146. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  147. package/lib-commonjs/components/DonutChart/DonutChart.js +1 -1
  148. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
  149. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +3 -10
  150. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -1
  151. package/lib-commonjs/components/GaugeChart/GaugeChart.js +4 -1
  152. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  153. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  154. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +14 -8
  155. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  156. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +9 -0
  157. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  158. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +0 -9
  159. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  160. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +599 -0
  161. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -0
  162. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js +7 -0
  163. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -0
  164. package/lib-commonjs/components/HeatMapChart/index.js +8 -0
  165. package/lib-commonjs/components/HeatMapChart/index.js.map +1 -0
  166. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +59 -0
  167. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -0
  168. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +2 -16
  169. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
  170. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +580 -0
  171. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -0
  172. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js +7 -0
  173. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -0
  174. package/lib-commonjs/components/HorizontalBarChartWithAxis/index.js +8 -0
  175. package/lib-commonjs/components/HorizontalBarChartWithAxis/index.js.map +1 -0
  176. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +107 -0
  177. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -0
  178. package/lib-commonjs/components/Legends/Legends.js +37 -37
  179. package/lib-commonjs/components/Legends/Legends.js.map +1 -1
  180. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +2 -2
  181. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
  182. package/lib-commonjs/components/LineChart/LineChart.js +41 -33
  183. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  184. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +1 -10
  185. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  186. package/lib-commonjs/components/SankeyChart/SankeyChart.js +1039 -0
  187. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -0
  188. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js +6 -0
  189. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -0
  190. package/lib-commonjs/components/SankeyChart/index.js +8 -0
  191. package/lib-commonjs/components/SankeyChart/index.js.map +1 -0
  192. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +179 -0
  193. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -0
  194. package/lib-commonjs/components/ScatterChart/ScatterChart.js +45 -58
  195. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  196. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +1 -10
  197. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  198. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +164 -87
  199. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  200. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  201. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +4 -11
  202. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  203. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +915 -0
  204. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -0
  205. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +6 -0
  206. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -0
  207. package/lib-commonjs/components/VerticalStackedBarChart/index.js +8 -0
  208. package/lib-commonjs/components/VerticalStackedBarChart/index.js.map +1 -0
  209. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +113 -0
  210. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -0
  211. package/lib-commonjs/index.js +5 -0
  212. package/lib-commonjs/index.js.map +1 -1
  213. package/lib-commonjs/types/DataPoint.js +1 -3
  214. package/lib-commonjs/types/DataPoint.js.map +1 -1
  215. package/lib-commonjs/utilities/SVGTooltipText.js +49 -4
  216. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
  217. package/lib-commonjs/utilities/colors.js +23 -0
  218. package/lib-commonjs/utilities/colors.js.map +1 -1
  219. package/lib-commonjs/utilities/string.js +29 -0
  220. package/lib-commonjs/utilities/string.js.map +1 -0
  221. package/lib-commonjs/utilities/test-data.js +59 -0
  222. package/lib-commonjs/utilities/test-data.js.map +1 -1
  223. package/lib-commonjs/utilities/utilities.js +94 -17
  224. package/lib-commonjs/utilities/utilities.js.map +1 -1
  225. package/package.json +11 -8
  226. package/lib/components/DeclarativeChart/PlotlySchema.js +0 -7
  227. package/lib/components/DeclarativeChart/PlotlySchema.js.map +0 -1
  228. package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js +0 -10
  229. package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { max as d3Max } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { scaleBand as d3ScaleBand, scaleLinear as d3ScaleLinear } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfXAxislabels,\n XAxisTypes,\n getTypeOfAxis,\n formatValueWithSIPrefix,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _dataset: GVDataPoint[] = [];\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n _dataset = dataset;\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = d3Max(_dataset, (point: any) => d3Max(_keys, (key: string) => point[key]));\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringAxis | NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(_buildGraph(singleSet, xScale0, xScale1, containerHeight, xElement!));\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight! - _margins.bottom! - _margins.top!]);\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const yPoint = Math.max(containerHeight! - _margins.bottom! - yBarScale(pointData.data), 0);\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={Math.max(yBarScale(pointData.data), 0)}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n data-is-focusable={!props.hideTooltip && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={onBarHover.bind(null, pointData, singleSet)}\n onMouseMove={onBarHover.bind(null, pointData, singleSet)}\n onMouseOut={_onBarLeave}\n onFocus={onBarFocus.bind(null, pointData, singleSet, refIndexNumber)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={pointData.legend !== '' ? 0 : undefined}\n role=\"img\"\n />\n </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {formatValueWithSIPrefix(pointData.data)}\n </text>,\n );\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(keys)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\n );\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(xAxisLabels) + 20;\n reqWidth = (xAxisLabels.length - _xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n calloutProps={calloutProps}\n legendBars={legends}\n xAxisType={_xAxisType}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n /* eslint-disable react/jsx-no-bind */\n children={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["GroupedVerticalBarChart","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","React","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","useId","_emptyChartId","_useRtl","useRtl","_domainMargin","_dataset","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useGroupedVerticalBarChartStyles_unstable","useEffect","areArraysEqual","_adjustProps","getBarWidth","barWidth","getScalePadding","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","getColorFromToken","DataVizPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","createElement","Legends","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","getTypeOfAxis","yMax","d3Max","max","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","getAccessibleDataObject","tickParams","tickValues","tickFormat","_getGraphData","xScale","yScale","containerHeight","containerWidth","xElement","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","margins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","yBarScale","d3ScaleLinear","domain","range","tempDataSet","Object","splice","datasetKey","xPoint","yPoint","startColor","getNextColor","Fragment","rect","className","opacityChangeOnHover","height","width","data-is-focusable","hideTooltip","ref","e","fill","rx","onMouseOver","bind","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","formatValueWithSIPrefix","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","d3Select","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","xAxis","tooltipOfXAxislabels","g","transform","x0Axis","d3ScaleBand","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","XAxisTypes","StringAxis","isScalePaddingDefined","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","step","calculateLongestLabelWidth","margin2","min","_isChartEmpty","item","_getChartTitle","chartTitle","CartesianChart","chartType","ChartTypes","legendBars","xAxisType","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA6DaA;;;eAAAA;;;;iEA7DU;wDACmC;yBAC7B;6BACM;yBAEoC;gCAEjD;uBAgBf;wBAgBA;AAKP,MAAMC,oBAAoB;AAC1B,MAAMC,mBAAmB;AACzB,2EAA2E;AAC3E,kFAAkF;AAClF,kFAAkF,GAClF,MAAMC,eAAeD,mBAAoB,CAAA,IAAIA,gBAAAA;AAYtC,MAAMF,0BAAAA,WAAAA,GAAkEI,OAAMC,UAAU,CAG7F,CAACC,QAAQ;IAAEC,aAAa;AAAG,CAAC,EAAEC;QAqByCF,oBAkBnEA;IAtCJ,MAAMG,aAAqBC,IAAAA,qBAAAA,EAAM;IACjC,MAAMC,gBAAwBD,IAAAA,qBAAAA,EAAM;IACpC,MAAME,UAAmBC,IAAAA,aAAAA;IACzB,IAAIC,gBAAwBb;IAC5B,IAAIc,WAA0B,EAAE;IAChC,IAAIC,QAAkB,EAAE;IACxB,IAAIC,eAAyB,EAAE;IAC/B,IAAIC,kBAAyB,EAAE;IAC/B,IAAIC,WAAoB;QAAEC,KAAK;QAAGC,OAAO;QAAGC,QAAQ;QAAGC,MAAM;IAAE;IAC/D,IAAIC,2BAA0C,EAAE;IAChD,IAAIC,YAA4B,EAAE;IAClC,IAAIC,QAAgB;IACpB,IAAIC,sBAAoD;IACxD,IAAIC,YAAoB;IACxB,IAAIC,cAAsB;IAC1B,IAAIC,qBAA6B;IACjC,IAAIC,qBAA6B;IAEjC,MAAM,CAACC,OAAOC,SAAS,GAAG7B,OAAM8B,QAAQ,CAAS;IACjD,MAAM,CAACC,kBAAkBC,oBAAoB,GAAGhC,OAAM8B,QAAQ,CAAS;IACvE,MAAM,CAACG,iBAAiBC,mBAAmB,GAAGlC,OAAM8B,QAAQ,CAAW5B,CAAAA,CAAAA,qBAAAA,MAAMiC,WAAW,AAAXA,MAAW,QAAjBjC,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAmB+B,eAAe,AAAfA,KAAmB,EAAE;IAC/G,MAAM,CAACG,eAAeC,iBAAiB,GAAGrC,OAAM8B,QAAQ,CAAS;IACjE,MAAM,CAACQ,eAAeC,iBAAiB,GAAGvC,OAAM8B,QAAQ,CAAS;IACjE,MAAM,CAACU,aAAaC,eAAe,GAAGzC,OAAM8B,QAAQ,CAAgB,EAAE;IACtE,MAAM,CAACY,aAAaC,eAAe,GAAG3C,OAAM8B,QAAQ,CAAS;IAC7D,MAAM,CAACc,eAAeC,iBAAiB,GAAG7C,OAAM8B,QAAQ,CAAS;IACjE,MAAM,CAACgB,cAAcC,gBAAgB,GAAG/C,OAAM8B,QAAQ,CAAS;IAC/D,MAAM,CAACkB,0BAA0BC,4BAA4B,GAAGjD,OAAM8B,QAAQ,CAC5EoB;IAEF,MAAM,CAACC,eAAeC,iBAAiB,GAAGpD,OAAM8B,QAAQ,CAAC;QAAEuB,GAAG;QAAGC,GAAG;IAAE;IACtE,MAAM,CAACC,eAAeC,eAAe,GAAGxD,OAAM8B,QAAQ,CAAU;IAChE,MAAM2B,UAAUC,IAAAA,iFAAAA,EAA0CxD;IAE1DF,OAAM2D,SAAS,CAAC;YACMzD;QAApB,IAAI,CAAC0D,IAAAA,qBAAAA,EAAAA,AAAe1D,CAAAA,qBAAAA,MAAMiC,WAAW,AAAXA,MAAW,QAAjBjC,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAmB+B,eAAe,EAAEA,kBAAkB;gBACrD/B;YAAnBgC,mBAAmBhC,CAAAA,CAAAA,sBAAAA,MAAMiC,WAAW,AAAXA,MAAW,QAAjBjC,wBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,oBAAmB+B,eAAe,AAAfA,KAAmB,EAAE;QAC7D;IACF,GAAG;QAAC/B,CAAAA,sBAAAA,MAAMiC,WAAW,AAAXA,MAAW,QAAjBjC,wBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,oBAAmB+B,eAAe;KAAC;IAEvC,MAAM4B,eAAe;QACnBrC,YAAYsC,IAAAA,kBAAAA,EAAY5D,MAAM6D,QAAQ,EAAE7D,MAAMC,WAAW;QACzD,iFAAiF;QACjF,uCAAuC;QACvC,iFAAiF;QACjFuB,qBAAqBsC,IAAAA,sBAAAA,EACnB9D,MAAM+D,iBAAiB,EACvBf,WACA,IAAK,CAAA,IAAIgB,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKpE,YAAAA;QAE7C4B,qBAAqBqC,IAAAA,sBAAAA,EAAgB9D,MAAMkE,iBAAiB;IAC9D;IAEA,MAAMC,iBAAiB,CAACC;QACtB,8DAA8D;QAC9D,MAAMC,iBAAsB,EAAE;QAC9B,MAAMC,UAAyB,EAAE;QAEjCF,OAAOG,OAAO,CAAC,CAACC,OAAoCC;YAClD,MAAMC,qBAAkC,CAAC;YACzC,8DAA8D;YAC9D,MAAMC,4BAAiC,CAAC;YACxC,MAAMC,mBAA4C,EAAE;YAEpDJ,MAAMK,MAAM,CAACN,OAAO,CAAC,CAACO,aAAoCC;gBACxDL,kBAAkB,CAACI,YAAYE,GAAG,CAAC,GAAGF,YAAYG,IAAI;gBACtDN,yBAAyB,CAACG,YAAYE,GAAG,CAAC,GAAG;oBAC3C,GAAGF,WAAW;gBAChB;gBACAF,iBAAiBM,IAAI,CAACJ;YACxB;YAEAH,0BAA0BQ,UAAU,GAAGX,MAAMY,IAAI;YACjDT,0BAA0BU,QAAQ,GAAGZ;YACrCE,0BAA0BW,WAAW,GAAGV;YACxCD,0BAA0BY,6BAA6B,GAAGf,MAAMe,6BAA6B;YAC7FlB,eAAea,IAAI,CAACP;YACpBL,QAAQY,IAAI,CAACR;QACf;QACAjE,WAAW6D;QACX,OAAOD;IACT;IAEA,MAAMmB,uBAAuB,CAACpB;QAC5B,MAAMJ,OAAiB,EAAE;QACzB,MAAMyB,cAAwBrB,OAAOsB,GAAG,CAACC,CAAAA,cAAeA,YAAYP,IAAI;QACxEhB,MAAM,CAAC,EAAE,CAACS,MAAM,CAACN,OAAO,CAAC,CAACqB;YACxB5B,KAAKkB,IAAI,CAACU,UAAUZ,GAAG;QACzB;QACA,MAAMX,iBAAiBF,eAAeC;QACtC,OAAO;YACLJ;YACAyB;YACApB;QACF;IACF;IAEA,MAAMwB,0BAA0B,CAC9B9D,iBACA+D,OACAC;YAEI/F,oBAKAA;QALJ,IAAA,AAAIA,CAAAA,qBAAAA,MAAMiC,WAAW,AAAXA,MAAW,QAAjBjC,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAmBgG,wBAAwB,EAAE;YAC/ChE,mBAAmBD;QACrB,OAAO;YACLC,mBAAmBD,gBAAgBkE,KAAK,CAAC,CAAC;QAC5C;QACA,IAAA,AAAIjG,CAAAA,sBAAAA,MAAMiC,WAAW,AAAXA,MAAW,QAAjBjC,wBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,oBAAmBkG,QAAQ,EAAE;YAC/BlG,MAAMiC,WAAW,CAACiE,QAAQ,CAACnE,iBAAiB+D,OAAOC;QACrD;IACF;IAEA,MAAMI,iBAAiB,CAAC/B;QACtB,MAAMa,OAAOb;QACb,MAAMgC,iBAA2B;YAC/BC,IAAAA,yBAAAA,EAAkBC,sBAAAA,CAAeC,MAAM;YACvCF,IAAAA,yBAAAA,EAAkBC,sBAAAA,CAAeE,MAAM;YACvCH,IAAAA,yBAAAA,EAAkBC,sBAAAA,CAAeG,MAAM;YACvCJ,IAAAA,yBAAAA,EAAkBC,sBAAAA,CAAeI,MAAM;YACvCL,IAAAA,yBAAAA,EAAkBC,sBAAAA,CAAeK,MAAM;SACxC;QACD,MAAMC,UAAoB,EAAE;QAE5B3B,KAAKV,OAAO,CAAC,CAACsC;YACZA,gBAAgBhC,MAAM,CAACN,OAAO,CAAC,CAACC;gBAC9B,IAAI9C,QAAgB8C,MAAM9C,KAAK,GAAG8C,MAAM9C,KAAK,GAAG0E,cAAc,CAACU,KAAKC,KAAK,CAACD,KAAKE,MAAM,KAAK,IAAI,GAAG;gBACjG,MAAMC,sBAAsBL,QAAQM,MAAM,CAAC,CAACC,MAAgBA,IAAIC,KAAK,KAAK5C,MAAM6C,MAAM,IAAIF,IAAIzF,KAAK,KAAKA;gBACxG,IAAIuF,oBAAqBhD,MAAM,GAAG,GAAG;oBACnC;gBACF;gBACA,MAAMoD,SAAiB;oBACrBD,OAAO5C,MAAM6C,MAAM;oBACnB3F;oBACA4F,aAAa;wBACXC;wBACAC,eAAehD,MAAM6C,MAAM;oBAC7B;oBACAI,kBAAkB;wBAChBC;oBACF;gBACF;gBAEAd,QAAQ1B,IAAI,CAACmC;YACf;QACF;QACA,OAAA,WAAA,GACEvH,OAAA6H,aAAA,CAACC,eAAAA,EAAAA;YACCC,SAASjB;YACTkB,kBAAkB9H,MAAM+H,uBAAuB;YAC/CC,cAAchI,MAAMiI,mBAAmB;YACtC,GAAGjI,MAAMiC,WAAW;YACrBiE,UAAUL;;IAGhB;IAEA,MAAMzB,SAASpE,MAAMiF,IAAI;IACzB,MAAM,EAAEjB,IAAI,EAAEyB,WAAW,EAAEpB,cAAc,EAAE,GAAGmB,qBAAqBpB;IACnE1D,QAAQsD;IACRrD,eAAe8E;IACf7E,kBAAkByD;IAClB,MAAM6D,aAAyBC,IAAAA,oBAAAA,EAAc/D,MAAO,CAAC,EAAE,CAACgB,IAAI,EAAE;IAC9D,MAAMyC,UAAuB1B,eAAe/B;IAC5CT;IAEA,8DAA8D;IAC9D,MAAMyE,OAAOC,IAAAA,YAAAA,EAAM5H,UAAU,CAAC+D,QAAe6D,IAAAA,YAAAA,EAAM3H,OAAO,CAACsE,MAAgBR,KAAK,CAACQ,IAAI;IACrF5D,QAAQ0F,KAAKwB,GAAG,CAACF,MAAMpI,MAAMuI,SAAS,IAAI;QAW/BvI;IATX,MAAMwI,eAAkC;QACtCvF;QACAI;QACA3B;QACA2F,QAAQ3E;QACR+F,QAAQvG;QACRwG,QAAQtG,gBAAgBA,gBAAgBP;QACxCS;QACAE;QACAmG,SAAS3I,CAAAA,iBAAAA,MAAM2I,OAAO,AAAPA,MAAO,QAAb3I,mBAAAA,KAAAA,IAAAA,iBAAiB;QAC1B4I,aAAa;QACb,GAAG5I,MAAMwI,YAAY;QACrB,GAAGK,IAAAA,8BAAAA,EAAwB/F,0BAA0B,QAAQ,MAAM;IACrE;IACA,MAAMgG,aAAa;QACjBC,YAAY/I,MAAM+I,UAAU;QAC5BC,YAAYhJ,MAAMgJ,UAAU;IAC9B;IAEA,MAAMC,gBAAgB,CACpBC,QACAC,QACAC,iBACAC,gBACAC;QAEA,MAAMC,UAAUC,eAAeH;QAE/B,2FAA2F;QAC3F,4EAA4E;QAC5E/H,YAAYsC,IAAAA,kBAAAA,EACV5D,MAAM6D,QAAQ,EACd7D,MAAMC,WAAW,EACjBsJ,QAAQE,SAAS,KAAM/I,CAAAA,MAAMuD,MAAM,GAAG,AAACvD,CAAAA,MAAMuD,MAAM,GAAG,CAAA,IAAKpE,YAAAA;QAE7D0B,cAAc,AAACb,CAAAA,MAAMuD,MAAM,GAAG,AAACvD,CAAAA,MAAMuD,MAAM,GAAG,CAAA,IAAKpE,YAAAA,IAAgByB;QAEnE,MAAMoI,UAAUC;QAChB,MAAMC,gBAA+B,EAAE;QACvChJ,gBAAgB2D,OAAO,CAAC,CAACsF;YACvBD,cAAc1E,IAAI,CAAC4E,YAAYD,WAAWN,SAASG,SAASN,iBAAiBE;QAC/E;QACApI,2BAA2B0I;IAC7B;IAEA,MAAMG,cAAc,CAACC;QACnBnJ,WAAWmJ;IACb;IAEA,MAAMC,cAAc,CAACC;QACnB,MAAMC,UAAUC,mBAAmBF,gBAAgBG,yBAAyB,KAAK;QACjF,OAAOF;IACT;IAEA,SAASG,eAAeC,IAAY,EAAEC,IAAY;QAChD,MAAMC,YAAY,GAAG,+BAA+B;QACpD,MAAM,EAAEtH,CAAC,EAAEC,CAAC,EAAE,GAAGH;QACjB,+BAA+B;QAC/B,MAAMyH,WAAW5D,KAAK6D,IAAI,CAAC7D,KAAK8D,GAAG,CAACL,OAAOpH,GAAG,KAAK2D,KAAK8D,GAAG,CAACJ,OAAOpH,GAAG;QACtE,+EAA+E;QAC/E,IAAIsH,WAAWD,WAAW;YACxBvH,iBAAiB;gBAAEC,GAAGoH;gBAAMnH,GAAGoH;YAAK;YACpClH,eAAe;QACjB;IACF;IAEA,MAAMuH,aAAa,CACjBC,WAEAC,WACAC;QAEAA,WAAWC,OAAO;QAClB,IAAI5J,wBAAwByJ,WAAW;YACrCzJ,sBAAsByJ;YACtBR,eAAeU,WAAWE,OAAO,EAAEF,WAAWG,OAAO;YACrD7H,eAAe+G,0BAA0BD,mBAAmBU,UAAUzD,MAAM;YAC5E1E,iBAAiBmI,UAAUzD,MAAM;YACjCvF,oBAAoBgJ,UAAU7F,IAAI;YAClCtD,SAASmJ,UAAUpJ,KAAK;YACxBS,iBAAiB2I,UAAUM,gBAAgB;YAC3C/I,iBAAiByI,UAAUO,gBAAgB;YAC3CtI,4BACE/C,MAAMsL,iBAAiB,GAAGP,UAAUxF,6BAA6B,GAAGuF,UAAUhI,wBAAwB;YAExGP,eAAewI,UAAUzF,WAAW;YACpC7C,eAAeqI,UAAUM,gBAAgB;QAC3C;IACF;IAEA,MAAMG,cAAc;IAClB,EAAE,GACJ;IAEA,MAAMhE,yBAAyB;QAC7BlG,sBAAsB;QACtBiC,eAAe;IACjB;IAEA,MAAMkI,aAAa,CACjBV,WAEAC,WACAU;QAEAtK,UAAUoD,OAAO,CAAC,CAACmH,KAAmBjH;YACpC,IAAIiH,IAAIjH,KAAK,KAAKqG,UAAUzD,MAAM,IAAIoE,wBAAwBhH,OAAO;gBACnEnB,eAAe+G,0BAA0BD,mBAAmBU,UAAUzD,MAAM;gBAC5E1E,iBAAiBmI,UAAUzD,MAAM;gBACjCvF,oBAAoBgJ,UAAU7F,IAAI;gBAClCtD,SAASmJ,UAAUpJ,KAAK;gBACxBS,iBAAiB2I,UAAUM,gBAAgB;gBAC3C/I,iBAAiByI,UAAUO,gBAAgB;gBAC3CtI,4BACE/C,MAAMsL,iBAAiB,GAAGP,UAAUxF,6BAA6B,GAAGuF,UAAUhI,wBAAwB;gBAExGP,eAAewI,UAAUzF,WAAW;gBACpC7C,eAAeqI,UAAUM,gBAAgB;YAC3C;QACF;IACF;IAEA,MAAMO,eAAe,CAACC,SAAyB1B,aAAqB2B;QAClE1K,SAAS,CAAC0K,eAAe,GAAG;YAAEpH,OAAOyF;YAAa4B,YAAYF;QAAQ;IACxE;IAEA,MAAM9B,cAAc,CAElBD,WAEAN,SAEAG,SACAN,iBACAE;QAEA,MAAMyC,cAA6B,EAAE;QACrC,MAAMC,oBAAmC,EAAE;QAE3C,MAAMC,YAAYC,IAAAA,oBAAAA,IACfC,MAAM,CAAC;YAAC;YAAG/D;SAAK,EAChBgE,KAAK,CAAC;YAAC;YAAGhD,kBAAmBvI,SAASG,MAAM,GAAIH,SAASC,GAAG;SAAE;QAEjE,MAAMuL,cAAcC,OAAOtI,IAAI,CAACK,cAAc,CAAC,EAAE,EAAEkI,MAAM,CAAC,GAAGvI,KAAKC,MAAM;QACxEoI,YAAY9H,OAAO,CAAC,CAACiI,YAAoB/H;YACvC,MAAMoH,iBAAiBhC,UAAUxE,QAAQ,GAAGgH,YAAYpI,MAAM,GAAGQ;YACjE,MAAMqG,YAAYjB,SAAS,CAAC2C,WAAW;YACvC,2FAA2F;YAC3F,4BAA4B;YAC5B,MAAMC,SAAS/C,QAAQ8C,cAAc,AAAC9C,CAAAA,QAAQD,SAAS,KAAKnI,SAAAA,IAAa;YACzE,MAAMoL,SAAS5F,KAAKwB,GAAG,CAACc,kBAAmBvI,SAASG,MAAM,GAAIiL,UAAUnB,UAAU7F,IAAI,GAAG;YACzF,MAAM0H,aAAa7B,UAAUpJ,KAAK,GAAGoJ,UAAUpJ,KAAK,GAAGkL,IAAAA,mBAAAA,EAAanI,OAAO;YAE3E,6BAA6B;YAC7BqG,UAAU7F,IAAI,IACZ8G,YAAY7G,IAAI,CAAA,WAAA,GACdpF,OAAA6H,aAAA,CAAC7H,OAAM+M,QAAQ,EAAA;gBAAC7H,KAAK,CAAC,EAAE6E,UAAUxE,QAAQ,CAAC,CAAC,EAAEZ,MAAM,CAAC;6BACnD3E,OAAA6H,aAAA,CAACmF,QAAAA;gBACCC,WAAWxJ,QAAQyJ,oBAAoB;gBACvCC,QAAQnG,KAAKwB,GAAG,CAAC2D,UAAUnB,UAAU7F,IAAI,GAAG;gBAC5CiI,OAAO5L;gBACP6B,GAAGsJ;gBACHrJ,GAAGsJ;gBACHS,qBAAmB,CAACnN,MAAMoN,WAAW,IAAKhD,CAAAA,mBAAmBU,UAAUzD,MAAM,KAAKgD,sBAAAA;gBAClFF,SAASF,YAAYa,UAAUzD,MAAM;gBACrCgG,KAAK,CAACC;oBACJ3B,aAAa2B,GAAIxC,UAAUzD,MAAM,EAAEwE;gBACrC;gBACA0B,MAAMZ;gBACNa,IAAI;gBACJC,aAAa5C,WAAW6C,IAAI,CAAC,MAAM5C,WAAWjB;gBAC9C8D,aAAa9C,WAAW6C,IAAI,CAAC,MAAM5C,WAAWjB;gBAC9C+D,YAAYrC;gBACZsC,SAASrC,WAAWkC,IAAI,CAAC,MAAM5C,WAAWjB,WAAWgC;gBACrDiC,QAAQvC;gBACRwC,SAASjD,UAAUiD,OAAO;gBAC1BC,cAAYC,aAAanD,WAAWjB,UAAU1E,UAAU;gBACxD+I,UAAUpD,UAAUzD,MAAM,KAAK,KAAK,IAAIrE;gBACxCmL,MAAK;;YAIb,IACErD,UAAU7F,IAAI,IACd,CAACjF,MAAMoO,UAAU,IACjB9M,aAAa,MACZ8I,CAAAA,mBAAmBU,UAAUzD,MAAM,KAAKgD,sBAAAA,GACzC;gBACA2B,kBAAkB9G,IAAI,CAAA,WAAA,GACpBpF,OAAA6H,aAAA,CAAC0G,QAAAA;oBACCrJ,KAAK,CAAC,EAAE6E,UAAUxE,QAAQ,CAAC,CAAC,EAAEZ,MAAM,CAAC;oBACrCtB,GAAGsJ,SAASnL,YAAY;oBACxB8B,GAAGsJ,SAAS;oBACZ4B,YAAW;oBACXvB,WAAWxJ,QAAQgL,QAAQ;oBAC3BC,eAAa;mBAEZC,IAAAA,8BAAAA,EAAwB3D,UAAU7F,IAAI;YAG7C;QACF;QACA,4CAA4C;QAC5C,IAAI,CAACjF,MAAM0O,eAAe,IAAI1O,MAAM2O,sBAAsB,EAAE;YAC1D,MAAMC,eAAeC,IAAAA,mBAAAA,EAASvF,UAAUwF,IAAI,CAACvF;YAC7C,IAAI;gBACFwF,SAASC,cAAc,CAAC7O,eAAe4O,SAASC,cAAc,CAAC7O,YAAa8O,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAO3B,GAAG,CAAC;YACb,MAAM4B,eAAe;gBACnBC,YAAY5L,QAAQ6L,OAAO;gBAC3BC,IAAIlP;gBACJmP,OAAOV;YACT;YACAA,gBAAgBW,IAAAA,2BAAAA,EAAqBL;QACvC;QACA,OAAA,WAAA,GACEpP,OAAA6H,aAAA,CAAC6H,KAAAA;YACCxK,KAAK6E,UAAUxE,QAAQ;YACvBoK,WAAW,CAAC,UAAU,EAAElG,QAAQM,UAAU1E,UAAU,IAAI,AAACoE,CAAAA,QAAQE,SAAS,KAAKlI,WAAAA,IAAe,EAAE,IAAI,CAAC;WAEpGwK,aACAC;IAGP;IAEA,uFAAuF;IACvF,kFAAkF;IAClF,MAAMxC,iBAAiB,CAACH;QACtB,MAAMqG,SAASC,IAAAA,kBAAAA,IACZxD,MAAM,CAAC1G,aACP2G,KAAK,CACJ9L,UACI;YAAC+I,iBAAkBxI,SAASE,KAAK,GAAIP;YAAeK,SAASI,IAAI,GAAIT;SAAc,GACnF;YAACK,SAASI,IAAI,GAAIT;YAAe6I,iBAAkBxI,SAASE,KAAK,GAAIP;SAAc,EAExFoP,YAAY,CAACpO,oBACbqO,YAAY,CAACpO;QAChB,OAAOiO;IACT;IAEA,8DAA8D;IAC9D,MAAM/F,iBAAiB;QACrB,OACEgG,IAAAA,kBAAAA,IACGxD,MAAM,CAACnI,MACR,gEAAgE;QAChE,uEAAuE;QACvE,qGAAqG;SACpGoI,KAAK,CAAC9L,UAAU;YAACiB;YAAa;SAAE,GAAG;YAAC;YAAGA;SAAY,EACnDqO,YAAY,CAAChQ;IAEpB;IAEA,MAAM4H,iBAAiB,CAAC0C;QACtBrH,gBAAgBqH;IAClB;IAEA,MAAMxC,iBAAiB;QACrB7E,gBAAgB;IAClB;IAEA,MAAMiN,eAAehQ,OAAMiQ,WAAW,CACpC,CAACC;QACC,IAAIA,aAAaA,UAAUC,iBAAiB,CAAChM,MAAM,EAAE;YACnD,MAAM,EAAEgM,mBAAmBC,WAAW,EAAE,GAAGF;YAC3C5O,QAAQ0F,KAAKwB,GAAG,CAAC4H,WAAW,CAACA,YAAYjM,MAAM,GAAG,EAAE,EAAEjE,MAAMuI,SAAS,IAAI;QAC3E;IACF,GACA;QAACvI,MAAMuI,SAAS;KAAC;IAGnB;;;;;GAKC,GACD,MAAM6B,qBAAqB,CAACF;QAC1B,OAAOiG,wBAAwBC,QAAQ,CAAClG;IAC1C;IAEA;;GAEC,GACD,MAAMG,uBAAuB;QAC3B,OAAO8F,wBAAwBlM,MAAM,KAAK;IAC5C;IAEA,MAAMkM,wBAAwB;QAC5B,OAAOpO,gBAAgBkC,MAAM,GAAG,IAAIlC,kBAAkBa,eAAe;YAACA;SAAa,GAAG,EAAE;IAC1F;IAEA,MAAMqL,eAAe,CAACzJ,OAA8BW;YAI3CX;QAHP,MAAM6L,SAAS7L,MAAM4G,gBAAgB,IAAIjG;QACzC,MAAMkC,SAAS7C,MAAM6C,MAAM;QAC3B,MAAMiJ,SAAS9L,MAAM6G,gBAAgB,IAAI7G,MAAMS,IAAI;QACnD,OAAOT,CAAAA,CAAAA,kCAAAA,MAAM1B,wBAAwB,AAAxBA,MAAwB,QAA9B0B,oCAAAA,KAAAA,IAAAA,KAAAA,IAAAA,gCAAgC+L,SAAS,AAATA,KAAa,CAAC,EAAEF,OAAO,EAAE,EAAEhJ,OAAO,EAAE,EAAEiJ,OAAO,CAAC,CAAC;IACxF;IAEA,MAAME,oBAAoB,CAACnH;QACzB,6CAA6C,GAC7C,MAAMoH,aAAapH,iBAAkBxI,CAAAA,SAASI,IAAI,GAAItB,iBAAAA,IAAsBkB,CAAAA,SAASE,KAAK,GAAIpB,iBAAAA;QAC9F,2EAA2E,GAC3E,MAAM+Q,eAAelP,qBAAsB,CAAA,IAAIA,kBAAAA;QAE/C,IAAI0G,eAAeyI,iBAAAA,CAAWC,UAAU,EAAE;YACxC,IAAIC,IAAAA,4BAAAA,EAAsB7Q,MAAMkE,iBAAiB,GAAG;gBAClD,uGAAuG;gBACvG,uEAAuE;gBACvE1D,gBAAgB;YAClB,OAAO,IAAIR,MAAM6D,QAAQ,KAAK,QAAQ;gBACpC,8DAA8D;gBAC9D,+DAA+D;gBAC/DvC,YAAYsC,IAAAA,kBAAAA,EAAY5D,MAAM6D,QAAQ,EAAE7D,MAAMC,WAAW;gBACzD,MAAM6Q,aAAa,AAAC9M,CAAAA,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKpE,YAAAA,IAAgByB;gBACtE,oFAAoF,GACpF,MAAMyP,WAAW,AAACtL,CAAAA,YAAYxB,MAAM,GAAG,AAACwB,CAAAA,YAAYxB,MAAM,GAAG,CAAA,IAAKyM,YAAAA,IAAgBI;gBAElF,IAAIL,cAAcM,UAAU;oBAC1B,4EAA4E;oBAC5EvQ,gBAAgBb,oBAAoB,AAAC8Q,CAAAA,aAAaM,QAAAA,IAAY;gBAChE;YACF,OAAO,IAAI/Q,MAAMgR,IAAI,KAAK,YAAYvL,YAAYxB,MAAM,GAAG,GAAG;gBAC5D,wFAAwF;gBACxF,MAAMgN,iBAAiBR,aAAchL,CAAAA,YAAYxB,MAAM,GAAG,AAACwB,CAAAA,YAAYxB,MAAM,GAAG,CAAA,IAAKyM,YAAAA;gBACrF,MAAMQ,eAAeD,iBAAkBjN,CAAAA,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKpE,YAAAA;gBACzE,MAAMgE,WAAWD,IAAAA,kBAAAA,EAAY5D,MAAM6D,QAAQ,EAAE7D,MAAMC,WAAW,EAAEiR;gBAChE,MAAMJ,aAAa,AAAC9M,CAAAA,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKpE,YAAAA,IAAgBgE;gBACtE,IAAIkN,WAAW,AAACtL,CAAAA,YAAYxB,MAAM,GAAG,AAACwB,CAAAA,YAAYxB,MAAM,GAAG,CAAA,IAAKyM,YAAAA,IAAgBI;gBAChF,MAAMK,UAAU,AAACV,CAAAA,aAAaM,QAAAA,IAAY;gBAE1C,gGAAgG;gBAChG,MAAMK,OAAOC,IAAAA,iCAAAA,EAA2B5L,eAAe;gBACvDsL,WAAW,AAACtL,CAAAA,YAAYxB,MAAM,GAAGzC,kBAAAA,IAAsB4P;gBACvD,MAAME,UAAU,AAACb,CAAAA,aAAaM,QAAAA,IAAY;gBAE1CvQ,gBAAgBb,oBAAoBmH,KAAKwB,GAAG,CAAC,GAAGxB,KAAKyK,GAAG,CAACJ,SAASG;YACpE;QACF;QAEA,OAAO;YACL,GAAGzQ,QAAQ;YACXI,MAAMJ,SAASI,IAAI,GAAIT;YACvBO,OAAOF,SAASE,KAAK,GAAIP;QAC3B;IACF;IAEA,MAAMgR,gBAAgB;QACpB,OAAO,CACLxR,CAAAA,MAAMiF,IAAI,IACVjF,MAAMiF,IAAI,CAAChB,MAAM,GAAG,KACpBjE,MAAMiF,IAAI,CAACiC,MAAM,CAAC,CAACuK,OAAsCA,KAAK5M,MAAM,CAACZ,MAAM,EAAEA,MAAM,GAAG,CAAA;IAE1F;IAEA,MAAMyN,iBAAiB;QACrB,OACE,AAAC1R,CAAAA,MAAM2R,UAAU,GAAG,CAAC,EAAE3R,MAAM2R,UAAU,CAAC,EAAE,CAAC,GAAG,EAAA,IAC9C,CAAC,wBAAwB,EAAEhR,aAAasD,MAAM,CAAC,WAAW,EAAEvD,MAAMuD,MAAM,CAAC,YAAY,CAAC;IAE1F;IAEA,OAAO,CAACuN,kBAAAA,WAAAA,GACN1R,OAAA6H,aAAA,CAACiK,sBAAAA,EAAAA;QACE,GAAG5R,KAAK;QACT2R,YAAYD;QACZtN,QAAQxD;QACRiR,WAAWC,iBAAAA,CAAWpS,uBAAuB;QAC7C8I,cAAcA;QACduJ,YAAYlK;QACZmK,WAAW9J;QACX+J,uBAAuBtR;QACvBmI,YAAYA;QACZoJ,aAAalS,MAAMkS,WAAW,IAAI;QAClCC,WAAW/Q;QACXgR,YAAYrI;QACZsI,cAAcpJ;QACdqJ,aAAaxC;QACbyC,mBAAmBhL;QACnBiL,kBAAkBhC;QACjB,GAAItI,eAAeyI,iBAAAA,CAAWC,UAAU,IAAI;YAC3C7M,mBAAmBvC;YACnB0C,mBAAmBzC;QACrB,CAAC;QACDgR,UAAUnR;QACV,oCAAoC,GACpCoR,UAAU;YACR,OAAA,WAAA,GAAO5S,OAAA6H,aAAA,CAAC6H,KAAAA,MAAGtO;QACb;uBAGFpB,OAAA6H,aAAA,CAACgL,OAAAA;QAAItD,IAAIhP;QAAe8N,MAAM;QAASyE,OAAO;YAAEzI,SAAS;QAAI;QAAG6D,cAAY;;AAEhF;AACAtO,wBAAwBmT,WAAW,GAAG"}
1
+ {"version":3,"sources":["GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { max as d3Max } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { scaleBand as d3ScaleBand, scaleLinear as d3ScaleLinear } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfXAxislabels,\n XAxisTypes,\n getTypeOfAxis,\n formatValueWithSIPrefix,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _dataset: GVDataPoint[] = [];\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n const cartesianChartRef = React.useRef<Chart>(null);\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n _dataset = dataset;\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = d3Max(_dataset, (point: any) => d3Max(_keys, (key: string) => point[key]));\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringAxis | NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(_buildGraph(singleSet, xScale0, xScale1, containerHeight, xElement!));\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight! - _margins.bottom! - _margins.top!]);\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const yPoint = Math.max(containerHeight! - _margins.bottom! - yBarScale(pointData.data), 0);\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={Math.max(yBarScale(pointData.data), 0)}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n data-is-focusable={!props.hideTooltip && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={onBarHover.bind(null, pointData, singleSet)}\n onMouseMove={onBarHover.bind(null, pointData, singleSet)}\n onMouseOut={_onBarLeave}\n onFocus={onBarFocus.bind(null, pointData, singleSet, refIndexNumber)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={pointData.legend !== '' ? 0 : undefined}\n role=\"img\"\n />\n </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {formatValueWithSIPrefix(pointData.data)}\n </text>,\n );\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(keys)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\n );\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(xAxisLabels) + 20;\n reqWidth = (xAxisLabels.length - _xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n calloutProps={calloutProps}\n legendBars={legends}\n xAxisType={_xAxisType}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["GroupedVerticalBarChart","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","React","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","useId","_emptyChartId","_useRtl","useRtl","_domainMargin","_dataset","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useGroupedVerticalBarChartStyles_unstable","useEffect","areArraysEqual","useImperativeHandle","componentRef","chartContainer","current","_adjustProps","getBarWidth","barWidth","getScalePadding","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","getColorFromToken","DataVizPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","createElement","Legends","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","getTypeOfAxis","yMax","d3Max","max","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","getAccessibleDataObject","tickParams","tickValues","tickFormat","_getGraphData","xScale","yScale","containerHeight","containerWidth","xElement","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","margins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","yBarScale","d3ScaleLinear","domain","range","tempDataSet","Object","splice","datasetKey","xPoint","yPoint","startColor","getNextColor","Fragment","rect","className","opacityChangeOnHover","height","width","data-is-focusable","hideTooltip","ref","e","fill","rx","onMouseOver","bind","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","formatValueWithSIPrefix","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","d3Select","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","xAxis","tooltipOfXAxislabels","g","transform","x0Axis","d3ScaleBand","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","XAxisTypes","StringAxis","isScalePaddingDefined","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","step","calculateLongestLabelWidth","margin2","min","_isChartEmpty","item","_getChartTitle","chartTitle","CartesianChart","chartType","ChartTypes","legendBars","xAxisType","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -26,16 +26,7 @@ const groupedVerticalBarChartClassNames = {
26
26
  yAxis: '',
27
27
  legendContainer: '',
28
28
  hover: '',
29
- calloutContentRoot: '',
30
- calloutContentX: '',
31
- calloutContentY: '',
32
29
  descriptionMessage: '',
33
- calloutDateTimeContainer: '',
34
- calloutInfoContainer: '',
35
- calloutBlockContainer: '',
36
- calloutBlockContainertoDrawShapefalse: '',
37
- calloutBlockContainertoDrawShapetrue: '',
38
- calloutlegendText: '',
39
30
  axisTitle: '',
40
31
  chartTitle: '',
41
32
  shapeStyles: '',
@@ -1 +1 @@
1
- {"version":3,"sources":["useGroupedVerticalBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const groupedVerticalBarChartClassNames = {\n opacityChangeOnHover: 'fui-gvbc**opacityChangeOnHover',\n tooltip: 'fui-gvbc**tooltip',\n barLabel: 'fui-gvbc**barLabel',\n root: '',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n calloutContentRoot: '',\n calloutContentX: '',\n calloutContentY: '',\n descriptionMessage: '',\n calloutDateTimeContainer: '',\n calloutInfoContainer: '',\n calloutBlockContainer: '',\n calloutBlockContainertoDrawShapefalse: '',\n calloutBlockContainertoDrawShapetrue: '',\n calloutlegendText: '',\n axisTitle: '',\n chartTitle: '',\n shapeStyles: '',\n chartWrapper: ''\n};\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default'\n },\n tooltip: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalS),\n position: 'absolute',\n textAlign: 'center',\n top: tokens.spacingVerticalNone,\n fill: tokens.colorNeutralBackground1,\n background: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none',\n color: tokens.colorNeutralForeground1\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n }\n});\n/**\n * Apply styling to the GroupedVerticalBarChart slots based on the state\n */ export const useGroupedVerticalBarChartStyles_unstable = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(groupedVerticalBarChartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/ ),\n tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),\n barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )\n };\n};\n"],"names":["groupedVerticalBarChartClassNames","useGroupedVerticalBarChartStyles_unstable","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","calloutContentRoot","calloutContentX","calloutContentY","descriptionMessage","calloutDateTimeContainer","calloutInfoContainer","calloutBlockContainer","calloutBlockContainertoDrawShapefalse","calloutBlockContainertoDrawShapetrue","calloutlegendText","axisTitle","chartTitle","shapeStyles","chartWrapper","useStyles","__styles","Bceei9c","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","fsow6f","Bhzewxz","Bkfmm31","Bgh53k4","B2eet1l","De3pzq","Bcmaq0h","gk0gix","B20660r","B8a6bjv","Bpptf2m","e5kdtc","Bkjc3bi","ayd6f0","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","sj55zd","d","p","props","baseStyles","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAEaA,iCAAiC;eAAjCA;;IAiDIC,yCAAyC;eAAzCA;;;uBAnDoC;AAE9C,MAAMD,oCAAoC;IAC7CE,sBAAsB;IACtBC,SAAS;IACTC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,OAAO;IACPC,oBAAoB;IACpBC,iBAAiB;IACjBC,iBAAiB;IACjBC,oBAAoB;IACpBC,0BAA0B;IAC1BC,sBAAsB;IACtBC,uBAAuB;IACvBC,uCAAuC;IACvCC,sCAAsC;IACtCC,mBAAmB;IACnBC,WAAW;IACXC,YAAY;IACZC,aAAa;IACbC,cAAc;AAClB;AACA,MAAMC,YAAS,WAAA,GAAGC,IAAAA,eAAA,EAAA;IAAAvB,sBAAA;QAAAwB,SAAA;IAAA;IAAAvB,SAAA;QAAAwB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,SAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;IAAA;IAAAtD,UAAA;QAAAuB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAU,SAAA;IAAA;AAAA,GAAA;IAAAmB,GAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,GAAA,CAAA;YAAA;SAAA;QAAA;YAAA;YAAA;gBAAAA,GAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA;AAyBP,MAAM3D,4CAA6C4D,CAAAA;IAC1D,MAAMC,aAAatC;IACnB,OAAO;QACHtB,sBAAsB6D,IAAAA,mBAAY,EAAC/D,kCAAkCE,oBAAoB,EAAE4D,WAAW5D,oBAAoB,CAAC,oCAAA;QAC3HC,SAAS4D,IAAAA,mBAAY,EAAC/D,kCAAkCG,OAAO,EAAE2D,WAAW3D,OAAO,CAAC,uBAAA;QACpFC,UAAU2D,IAAAA,mBAAY,EAAC/D,kCAAkCI,QAAQ,EAAE0D,WAAW1D,QAAQ,CAAC,wBAAA;IAC3F;AACJ"}
1
+ {"version":3,"sources":["useGroupedVerticalBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const groupedVerticalBarChartClassNames = {\n opacityChangeOnHover: 'fui-gvbc**opacityChangeOnHover',\n tooltip: 'fui-gvbc**tooltip',\n barLabel: 'fui-gvbc**barLabel',\n root: '',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n descriptionMessage: '',\n axisTitle: '',\n chartTitle: '',\n shapeStyles: '',\n chartWrapper: ''\n};\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default'\n },\n tooltip: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalS),\n position: 'absolute',\n textAlign: 'center',\n top: tokens.spacingVerticalNone,\n fill: tokens.colorNeutralBackground1,\n background: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none',\n color: tokens.colorNeutralForeground1\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n }\n});\n/**\n * Apply styling to the GroupedVerticalBarChart slots based on the state\n */ export const useGroupedVerticalBarChartStyles_unstable = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(groupedVerticalBarChartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/ ),\n tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),\n barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )\n };\n};\n"],"names":["groupedVerticalBarChartClassNames","useGroupedVerticalBarChartStyles_unstable","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","shapeStyles","chartWrapper","useStyles","__styles","Bceei9c","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","fsow6f","Bhzewxz","Bkfmm31","Bgh53k4","B2eet1l","De3pzq","Bcmaq0h","gk0gix","B20660r","B8a6bjv","Bpptf2m","e5kdtc","Bkjc3bi","ayd6f0","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","sj55zd","d","p","props","baseStyles","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAEaA,iCAAiC;eAAjCA;;IAwCIC,yCAAyC;eAAzCA;;;uBA1CoC;AAE9C,MAAMD,oCAAoC;IAC7CE,sBAAsB;IACtBC,SAAS;IACTC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,OAAO;IACPC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,aAAa;IACbC,cAAc;AAClB;AACA,MAAMC,YAAS,WAAA,GAAGC,IAAAA,eAAA,EAAA;IAAAd,sBAAA;QAAAe,SAAA;IAAA;IAAAd,SAAA;QAAAe,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,SAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;IAAA;IAAA7C,UAAA;QAAAc,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAU,SAAA;IAAA;AAAA,GAAA;IAAAmB,GAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,GAAA,CAAA;YAAA;SAAA;QAAA;YAAA;YAAA;gBAAAA,GAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA;AAyBP,MAAMlD,4CAA6CmD,CAAAA;IAC1D,MAAMC,aAAatC;IACnB,OAAO;QACHb,sBAAsBoD,IAAAA,mBAAY,EAACtD,kCAAkCE,oBAAoB,EAAEmD,WAAWnD,oBAAoB,CAAC,oCAAA;QAC3HC,SAASmD,IAAAA,mBAAY,EAACtD,kCAAkCG,OAAO,EAAEkD,WAAWlD,OAAO,CAAC,uBAAA;QACpFC,UAAUkD,IAAAA,mBAAY,EAACtD,kCAAkCI,QAAQ,EAAEiD,WAAWjD,QAAQ,CAAC,wBAAA;IAC3F;AACJ"}