@fluentui/react-charts 9.1.5 → 9.1.7

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 (153) hide show
  1. package/CHANGELOG.md +30 -2
  2. package/dist/index.d.ts +46 -4
  3. package/lib/components/AreaChart/AreaChart.js +3 -3
  4. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  5. package/lib/components/AreaChart/useAreaChartStyles.styles.js +2 -1
  6. package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
  7. package/lib/components/CommonComponents/CartesianChart.js +42 -9
  8. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  9. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  10. package/lib/components/CommonComponents/ChartPopover.js +3 -2
  11. package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
  12. package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
  13. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +37 -9
  14. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  15. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +11 -5
  16. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
  17. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +13 -13
  18. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  19. package/lib/components/DonutChart/Arc/Arc.js +10 -3
  20. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  21. package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
  22. package/lib/components/DonutChart/Arc/useArcStyles.styles.js +7 -2
  23. package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
  24. package/lib/components/DonutChart/useDonutChartStyles.styles.js +7 -6
  25. package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  26. package/lib/components/GaugeChart/GaugeChart.js +16 -17
  27. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  28. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  29. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +15 -13
  30. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  31. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +3 -3
  32. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  33. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +2 -1
  34. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  35. package/lib/components/HeatMapChart/HeatMapChart.js +4 -1
  36. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  37. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  38. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +9 -3
  39. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
  40. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +14 -3
  41. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  42. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +0 -61
  43. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  44. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +6 -31
  45. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
  46. package/lib/components/Legends/useLegendsStyles.styles.js +2 -1
  47. package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
  48. package/lib/components/LineChart/LineChart.js +3 -3
  49. package/lib/components/LineChart/LineChart.js.map +1 -1
  50. package/lib/components/LineChart/useLineChartStyles.styles.js +2 -1
  51. package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  52. package/lib/components/ResponsiveContainer/ResponsiveContainer.js +25 -23
  53. package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  54. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  55. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +29 -0
  56. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js.map +1 -0
  57. package/lib/components/SankeyChart/SankeyChart.js +29 -35
  58. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  59. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  60. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +13 -7
  61. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  62. package/lib/components/ScatterChart/ScatterChart.js +15 -17
  63. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  64. package/lib/components/ScatterChart/useScatterChartStyles.styles.js +3 -2
  65. package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  66. package/lib/components/VerticalBarChart/VerticalBarChart.js +19 -21
  67. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  68. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  69. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +2 -1
  70. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  71. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +17 -14
  72. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  73. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  74. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +2 -1
  75. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
  76. package/lib/utilities/utilities.js +11 -5
  77. package/lib/utilities/utilities.js.map +1 -1
  78. package/lib-commonjs/components/AreaChart/AreaChart.js +2 -2
  79. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  80. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +2 -1
  81. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
  82. package/lib-commonjs/components/CommonComponents/CartesianChart.js +41 -8
  83. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  84. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  85. package/lib-commonjs/components/CommonComponents/ChartPopover.js +3 -2
  86. package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
  87. package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
  88. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +55 -9
  89. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  90. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +14 -5
  91. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
  92. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +13 -13
  93. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  94. package/lib-commonjs/components/DonutChart/Arc/Arc.js +10 -3
  95. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  96. package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
  97. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +10 -2
  98. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
  99. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +8 -7
  100. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  101. package/lib-commonjs/components/GaugeChart/GaugeChart.js +16 -17
  102. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  103. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  104. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +13 -23
  105. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  106. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +2 -2
  107. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  108. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +2 -1
  109. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  110. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +4 -1
  111. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  112. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  113. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +10 -3
  114. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
  115. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +14 -3
  116. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  117. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +0 -61
  118. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  119. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +5 -54
  120. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
  121. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +2 -0
  122. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
  123. package/lib-commonjs/components/LineChart/LineChart.js +2 -2
  124. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  125. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +2 -1
  126. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  127. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +25 -23
  128. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  129. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  130. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +49 -0
  131. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js.map +1 -0
  132. package/lib-commonjs/components/SankeyChart/SankeyChart.js +29 -35
  133. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
  134. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  135. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +15 -8
  136. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  137. package/lib-commonjs/components/ScatterChart/ScatterChart.js +13 -15
  138. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  139. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +5 -4
  140. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  141. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +18 -20
  142. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  143. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  144. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +2 -1
  145. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  146. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +16 -13
  147. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  148. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  149. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +2 -1
  150. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
  151. package/lib-commonjs/utilities/utilities.js +16 -7
  152. package/lib-commonjs/utilities/utilities.js.map +1 -1
  153. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"names":["__styles","mergeClasses","typographyStyles","heatmapChartClassNames","root","text","xAxis","yAxis","legendContainer","hover","descriptionMessage","tooltip","axisTitle","chartTitle","opacityChangeOnHover","shapeStyles","chartWrapper","svgTooltip","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","Bkecrkj","d","useHeatMapChartStyles","props","baseStyles"],"sources":["useHeatMapChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { typographyStyles } from '@fluentui/react-theme';\nexport const heatmapChartClassNames = {\n root: 'fui-hmc__root',\n text: 'fui-hmc__text',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n descriptionMessage: '',\n tooltip: '',\n axisTitle: '',\n chartTitle: '',\n opacityChangeOnHover: '',\n shapeStyles: '',\n chartWrapper: '',\n svgTooltip: ''\n};\nconst useStyles = makeStyles({\n root: {},\n text: {\n ...typographyStyles.body1Strong,\n pointerEvents: 'none'\n }\n});\nexport const useHeatMapChartStyles = (props)=>{\n const baseStyles = useStyles();\n return {\n root: mergeClasses(heatmapChartClassNames.root, baseStyles.root /*, props.styles?.root*/ ),\n text: mergeClasses(heatmapChartClassNames.text, baseStyles.text /*, props.styles?.text*/ )\n };\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,OAAO,MAAMC,sBAAsB,GAAG;EAClCC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,eAAe;EACrBC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,eAAe,EAAE,EAAE;EACnBC,KAAK,EAAE,EAAE;EACTC,kBAAkB,EAAE,EAAE;EACtBC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE,EAAE;EACdC,oBAAoB,EAAE,EAAE;EACxBC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE,EAAE;EAChBC,UAAU,EAAE;AAChB,CAAC;AACD,MAAMC,SAAS,gBAAGlB,QAAA;EAAAI,IAAA;EAAAC,IAAA;IAAAc,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CAMjB,CAAC;AACF,OAAO,MAAMC,qBAAqB,GAAIC,KAAK,IAAG;EAC1C,MAAMC,UAAU,GAAGT,SAAS,CAAC,CAAC;EAC9B,OAAO;IACHd,IAAI,EAAEH,YAAY,CAACE,sBAAsB,CAACC,IAAI,EAAEuB,UAAU,CAACvB,IAAI,CAAC,wBAAyB,CAAC;IAC1FC,IAAI,EAAEJ,YAAY,CAACE,sBAAsB,CAACE,IAAI,EAAEsB,UAAU,CAACtB,IAAI,CAAC,wBAAyB;EAC7F,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["__styles","mergeClasses","typographyStyles","heatmapChartClassNames","root","text","calloutContentRoot","xAxis","yAxis","legendContainer","hover","descriptionMessage","tooltip","axisTitle","chartTitle","opacityChangeOnHover","shapeStyles","chartWrapper","svgTooltip","chart","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","Bkecrkj","B2u0y6b","d","useHeatMapChartStyles","props","baseStyles"],"sources":["useHeatMapChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { typographyStyles } from '@fluentui/react-theme';\nexport const heatmapChartClassNames = {\n root: 'fui-hmc__root',\n text: 'fui-hmc__text',\n calloutContentRoot: 'fui-hmc__calloutContentRoot',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n descriptionMessage: '',\n tooltip: '',\n axisTitle: '',\n chartTitle: '',\n opacityChangeOnHover: '',\n shapeStyles: '',\n chartWrapper: '',\n svgTooltip: '',\n chart: ''\n};\nconst useStyles = makeStyles({\n root: {},\n text: {\n ...typographyStyles.body1Strong,\n pointerEvents: 'none'\n },\n calloutContentRoot: {\n maxWidth: '238px'\n }\n});\nexport const useHeatMapChartStyles = (props)=>{\n const baseStyles = useStyles();\n return {\n root: mergeClasses(heatmapChartClassNames.root, baseStyles.root /*, props.styles?.root*/ ),\n text: mergeClasses(heatmapChartClassNames.text, baseStyles.text /*, props.styles?.text*/ ),\n calloutContentRoot: mergeClasses(heatmapChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot /*, props.styles?.calloutContentRoot*/ )\n };\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,OAAO,MAAMC,sBAAsB,GAAG;EAClCC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,eAAe;EACrBC,kBAAkB,EAAE,6BAA6B;EACjDC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,eAAe,EAAE,EAAE;EACnBC,KAAK,EAAE,EAAE;EACTC,kBAAkB,EAAE,EAAE;EACtBC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE,EAAE;EACdC,oBAAoB,EAAE,EAAE;EACxBC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE,EAAE;EAChBC,UAAU,EAAE,EAAE;EACdC,KAAK,EAAE;AACX,CAAC;AACD,MAAMC,SAAS,gBAAGpB,QAAA;EAAAI,IAAA;EAAAC,IAAA;IAAAgB,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;EAAAnB,kBAAA;IAAAoB,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CASjB,CAAC;AACF,OAAO,MAAMC,qBAAqB,GAAIC,KAAK,IAAG;EAC1C,MAAMC,UAAU,GAAGV,SAAS,CAAC,CAAC;EAC9B,OAAO;IACHhB,IAAI,EAAEH,YAAY,CAACE,sBAAsB,CAACC,IAAI,EAAE0B,UAAU,CAAC1B,IAAI,CAAC,wBAAyB,CAAC;IAC1FC,IAAI,EAAEJ,YAAY,CAACE,sBAAsB,CAACE,IAAI,EAAEyB,UAAU,CAACzB,IAAI,CAAC,wBAAyB,CAAC;IAC1FC,kBAAkB,EAAEL,YAAY,CAACE,sBAAsB,CAACG,kBAAkB,EAAEwB,UAAU,CAACxB,kBAAkB,CAAC,sCAAuC;EACrJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -47,7 +47,19 @@ import { Legends } from '../../index';
47
47
  function _hoverOn(event, hoverVal, point) {
48
48
  if ((!isPopoverOpen || legend !== point.legend) && _calloutAnchorPoint !== point && (_legendHighlighted(point.legend) || _noLegendHighlighted())) {
49
49
  _calloutAnchorPoint = point;
50
- updatePosition(event.clientX, event.clientY);
50
+ let x = 0;
51
+ let y = 0;
52
+ if ('clientX' in event && event.clientX && event.clientY) {
53
+ // Mouse event
54
+ x = event.clientX;
55
+ y = event.clientY;
56
+ } else {
57
+ // Focus event
58
+ const targetRect = event.target.getBoundingClientRect();
59
+ x = targetRect.left + targetRect.width / 2;
60
+ y = targetRect.top + targetRect.height / 2;
61
+ }
62
+ updatePosition(x, y);
51
63
  setHoverValue(hoverVal);
52
64
  setLineColor(point.color);
53
65
  setLegend(point.legend);
@@ -244,12 +256,11 @@ import { Legends } from '../../index';
244
256
  key: index,
245
257
  x: `${_isRTL ? 100 - startingPoint[index] - value - index * barSpacingInPercent : startingPoint[index] + index * barSpacingInPercent}%`,
246
258
  y: 0,
247
- "data-is-focusable": point.legend !== '' ? true : false,
248
259
  width: value + '%',
249
260
  height: _barHeight,
250
261
  fill: color,
251
262
  onMouseOver: point.legend !== '' ? (event)=>_hoverOn(event, xValue, point) : undefined,
252
- onFocus: point.legend !== '' ? (event)=>_hoverOn.bind(event, xValue, point) : undefined,
263
+ onFocus: point.legend !== '' ? (event)=>_hoverOn(event, xValue, point) : undefined,
253
264
  role: "img",
254
265
  "aria-label": _getAriaLabel(point),
255
266
  onBlur: _hoverOff,
@@ -1 +1 @@
1
- {"version":3,"sources":["HorizontalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useHorizontalBarChartStyles } from './useHorizontalBarChartStyles.styles';\nimport { ChartProps, HorizontalBarChartProps, ChartDataPoint, RefArrayData, HorizontalBarChartVariant } from './index';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { formatScientificLimitWidth, getAccessibleDataObject, useRtl } from '../../utilities/index';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { ChartPopover } from '../CommonComponents/ChartPopover';\nimport { FocusableTooltipText } from '../../utilities/FocusableTooltipText';\nimport { Legend, Legends } from '../../index';\n\n/**\n * HorizontalBarChart is the context wrapper and container for all HorizontalBarChart content/controls,\n * It has no direct style or slot opinions.\n *\n * HorizontalBarChart also provides API interfaces for callbacks that will occur on navigation events.\n */\nexport const HorizontalBarChart: React.FunctionComponent<HorizontalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n HorizontalBarChartProps\n>((props, forwardedRef) => {\n const legendContainer = React.useRef<HTMLDivElement | null>(null);\n const _uniqLineText: string = '_HorizontalLine_' + Math.random().toString(36).substring(7);\n const _refArray: RefArrayData[] = [];\n const _isRTL: boolean = useRtl();\n const barChartSvgRef: React.RefObject<SVGSVGElement> = React.createRef<SVGSVGElement>();\n const _emptyChartId: string = useId('_HBC_empty');\n let _barHeight: number;\n let _calloutAnchorPoint: ChartDataPoint | null;\n let isSingleBar: boolean = true;\n\n const [hoverValue, setHoverValue] = React.useState<string | number | Date | null>('');\n const [lineColor, setLineColor] = React.useState<string>('');\n const [legend, setLegend] = React.useState<string | null>('');\n const [xCalloutValue, setXCalloutValue] = React.useState<string | undefined>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string | undefined>('');\n const [barCalloutProps, setBarCalloutProps] = React.useState<ChartDataPoint>();\n const [barSpacingInPercent, setBarSpacingInPercent] = React.useState<number>(0);\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [selectedLegend, setSelectedLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n\n function _refCallback(element: SVGGElement, legendTitle: string | undefined): void {\n _refArray.push({ index: legendTitle, refElement: element });\n }\n\n function _hoverOn(\n event: React.MouseEvent<SVGRectElement, MouseEvent>,\n hoverVal: string | number | Date,\n point: ChartDataPoint,\n ): void {\n if (\n (!isPopoverOpen || legend !== point.legend!) &&\n _calloutAnchorPoint !== point &&\n (_legendHighlighted(point.legend) || _noLegendHighlighted())\n ) {\n _calloutAnchorPoint = point;\n updatePosition(event.clientX, event.clientY);\n setHoverValue(hoverVal);\n setLineColor(point.color!);\n setLegend(point.legend!);\n setXCalloutValue(point.xAxisCalloutData!);\n setYCalloutValue(point.yAxisCalloutData!);\n setBarCalloutProps(point);\n // ToDo - Confirm setting multiple state variables like this is performant.\n }\n }\n\n function _hoverOff(): void {\n /*ToDo. To fix*/\n }\n\n const _handleChartMouseLeave = () => {\n _calloutAnchorPoint = null;\n if (isPopoverOpen) {\n setPopoverOpen(false);\n setHoverValue('');\n setLineColor('');\n setLegend('');\n }\n };\n\n const _adjustProps = (): void => {\n _barHeight = props.barHeight || 12;\n };\n\n const _getChartDataText = (data: ChartProps) => {\n /* return props.barChartCustomData ? (\n <div role=\"text\">{props.barChartCustomData(data)}</div>\n ) : ( */\n return _getDefaultTextData(data);\n //)\n };\n\n function _createLegends(chartProps: ChartProps[]): JSX.Element {\n const legendItems: Legend[] = [];\n chartProps.forEach((point: ChartProps) => {\n point.chartData!.forEach((dataPoint: ChartDataPoint) => {\n const color: string = dataPoint.color!;\n // mapping data to the format Legends component needs\n const legendItem: Legend = {\n title: dataPoint.legend!,\n color,\n action: () => {\n if (selectedLegend === dataPoint.legend) {\n setSelectedLegend('');\n } else {\n setSelectedLegend(dataPoint.legend!);\n }\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n setActiveLegend(dataPoint.legend!);\n },\n onMouseOutAction: () => {\n setActiveLegend('');\n },\n };\n legendItems.push(legendItem);\n });\n });\n const legends = (\n <Legends legends={legendItems} centerLegends overflowText={props.legendsOverflowText} {...props.legendProps} />\n );\n return legends;\n }\n\n function _getDefaultTextData(data: ChartProps): JSX.Element {\n const { culture } = props;\n const accessibilityData = getAccessibleDataObject(data.chartDataAccessibilityData!, 'text', false);\n if (!isSingleBar) {\n const total = data.chartData!.reduce(\n (acc: number, point: ChartDataPoint) =>\n acc + (point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0),\n 0,\n );\n return (\n <div className={classes.chartTitleRight} {...accessibilityData}>\n {formatToLocaleString(total, culture)}\n </div>\n );\n }\n const chartDataMode = props.chartDataMode || 'default';\n const chartData: ChartDataPoint = data!.chartData![0];\n const x = chartData.horizontalBarChartdata!.x;\n const y = chartData.horizontalBarChartdata!.total!;\n\n switch (chartDataMode) {\n case 'default':\n return (\n <div className={classes.chartTitleRight} {...accessibilityData}>\n {formatToLocaleString(x, culture)}\n </div>\n );\n case 'fraction':\n return (\n <div {...accessibilityData}>\n <span className={classes.chartTitleRight}>{formatToLocaleString(x, culture)}</span>\n <span className={classes.chartDataTextDenominator}>{' / ' + formatToLocaleString(y, culture)}</span>\n </div>\n );\n case 'percentage':\n const dataRatioPercentage = `${formatToLocaleString(Math.round((x / y) * 100), culture)}%`;\n return (\n <div className={classes.chartTitleRight} {...accessibilityData}>\n {dataRatioPercentage}\n </div>\n );\n }\n }\n\n function _createBenchmark(data: ChartProps): JSX.Element {\n if (data.chartData![0].horizontalBarChartdata!.total === undefined) {\n return <></>;\n }\n const totalData = data.chartData![0].horizontalBarChartdata!.total!;\n const benchmarkData = data.chartData![0].data;\n const benchmarkRatio = Math.round(((benchmarkData ? benchmarkData : 0) / totalData) * 100);\n\n const benchmarkStyles = {\n left: 'calc(' + benchmarkRatio + '% - 4px)',\n };\n\n return (\n <div className={classes.benchmarkContainer}>\n <div className={classes.triangle} style={benchmarkStyles} />\n </div>\n );\n }\n\n /**\n * This functions returns an array of <rect> elements, which form the bars\n * For each bar an x value, and a width needs to be specified\n * The computations are done based on percentages\n * Extra margin is also provided, in the x value to provide some spacing in between the bars\n */\n\n function _createBars(data: ChartProps): JSX.Element[] {\n const noOfBars =\n data.chartData?.reduce((count: number, point: ChartDataPoint) => (count += (point.data || 0) > 0 ? 1 : 0), 0) ||\n 1;\n const totalMarginPercent = barSpacingInPercent * (noOfBars - 1);\n const defaultColors: string[] = [\n tokens.colorPaletteBlueForeground2,\n tokens.colorPaletteCornflowerForeground2,\n tokens.colorPaletteDarkGreenForeground2,\n tokens.colorPaletteNavyForeground2,\n tokens.colorPaletteDarkOrangeForeground2,\n ];\n // calculating starting point of each bar and it's range\n const startingPoint: number[] = [];\n const total = data.chartData!.reduce(\n (acc: number, point: ChartDataPoint) =>\n acc + (point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0),\n 0,\n );\n let prevPosition = 0;\n let value = 0;\n\n let sumOfPercent = 0;\n data.chartData!.map((point: ChartDataPoint, index: number) => {\n const pointData = point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0;\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n } else if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n\n return sumOfPercent;\n });\n\n /**\n * The %age of the space occupied by the margin needs to subtracted\n * while computing the scaling ratio, since the margins are not being\n * scaled down, only the data is being scaled down from a higher percentage to lower percentage\n * Eg: 95% of the space is taken by the bars, 5% by the margins\n * Now if the sumOfPercent is 120% -> This needs to be scaled down to 95%, not 100%\n * since that's only space available to the bars\n */\n const scalingRatio = sumOfPercent !== 0 ? (sumOfPercent - totalMarginPercent) / 100 : 1;\n\n const bars = data.chartData!.map((point: ChartDataPoint, index: number) => {\n const color: string = point.color ? point.color : defaultColors[Math.floor(Math.random() * 4 + 1)];\n const pointData = point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n } else if (value < 1 && value !== 0) {\n value = 1 / scalingRatio;\n } else {\n value = value / scalingRatio;\n }\n startingPoint.push(prevPosition);\n\n const xValue = point.horizontalBarChartdata!.x;\n const placeholderIndex = 1;\n const isLegendSelected: boolean = _legendHighlighted(point.legend) || _noLegendHighlighted();\n\n // Render bar label instead of placeholder bar for absolute-scale variant\n if (index === placeholderIndex && props.variant === HorizontalBarChartVariant.AbsoluteScale) {\n if (props.hideLabels) {\n return <text key={index} />;\n }\n\n const barValue = data.chartData![0].horizontalBarChartdata!.x;\n\n return (\n <text\n key={index}\n x={`${_isRTL ? 100 - startingPoint[index] : startingPoint[index]}%`}\n y={_barHeight / 2}\n dominantBaseline=\"central\"\n transform={`translate(${_isRTL ? -4 : 4})`}\n className={classes.barLabel}\n aria-hidden={true}\n >\n {formatScientificLimitWidth(barValue)}\n </text>\n );\n }\n\n return (\n <rect\n key={index}\n x={`${\n _isRTL\n ? 100 - startingPoint[index] - value - index * barSpacingInPercent\n : startingPoint[index] + index * barSpacingInPercent\n }%`}\n y={0}\n data-is-focusable={point.legend !== '' ? true : false}\n width={value + '%'}\n height={_barHeight}\n fill={color}\n onMouseOver={point.legend !== '' ? event => _hoverOn(event, xValue, point) : undefined}\n onFocus={point.legend !== '' ? event => _hoverOn.bind(event, xValue, point) : undefined}\n role=\"img\"\n aria-label={_getAriaLabel(point)}\n onBlur={_hoverOff}\n onMouseLeave={_hoverOff}\n className={classes.barWrapper}\n opacity={isLegendSelected ? 1 : 0.1}\n tabIndex={point.legend !== '' ? 0 : undefined}\n />\n );\n });\n return bars;\n }\n\n const _getAriaLabel = (point: ChartDataPoint): string => {\n const legend = point.xAxisCalloutData || point.legend;\n const yValue =\n point.yAxisCalloutData ||\n (point.horizontalBarChartdata\n ? `${point.horizontalBarChartdata.x}/${point.horizontalBarChartdata.total ?? ''}`\n : 0);\n return point.callOutAccessibilityData?.ariaLabel || (legend ? `${legend}, ` : '') + `${yValue}.`;\n };\n\n function _isChartEmpty(): boolean {\n return !(props.data && props.data.length > 0);\n }\n\n function updatePosition(newX: number, newY: number): void {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n\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 React.useEffect(() => {\n const svgWidth = barChartSvgRef?.current?.getBoundingClientRect().width || 0;\n const MARGIN_WIDTH_IN_PX = 3;\n if (svgWidth) {\n const currentBarSpacing = (MARGIN_WIDTH_IN_PX / svgWidth) * 100;\n setBarSpacingInPercent(currentBarSpacing);\n }\n }, [barChartSvgRef]);\n\n function _legendHighlighted(barLegend?: string) {\n if (barLegend === undefined) {\n return false;\n }\n return selectedLegend === barLegend || (selectedLegend === '' && activeLegend === barLegend);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.*/\n\n function _noLegendHighlighted() {\n return selectedLegend === '' && activeLegend === '';\n }\n\n const { data } = props;\n _adjustProps();\n const classes = useHorizontalBarChartStyles(props);\n const focusAttributes = useFocusableGroup();\n const legendButtons = _createLegends(data!);\n\n let datapoint: number | undefined = 0;\n return !_isChartEmpty() ? (\n <div className={classes.root} onMouseLeave={_handleChartMouseLeave}>\n {data!.map((points: ChartProps, index: number) => {\n if (points.chartData && points.chartData![0] && points.chartData![0].horizontalBarChartdata!.x) {\n datapoint = points.chartData![0].horizontalBarChartdata!.x;\n } else {\n datapoint = 0;\n }\n isSingleBar =\n points.chartData!.length === 1 || (points.chartData!.length > 1 && points.chartData![1].legend === '');\n if (isSingleBar) {\n points.chartData![1] = {\n legend: '',\n horizontalBarChartdata: {\n x: points.chartData![0].horizontalBarChartdata!.total! - datapoint!,\n total: points.chartData![0].horizontalBarChartdata!.total!,\n },\n color: tokens.colorBackgroundOverlay,\n };\n }\n\n // Hide right side text of chart title for absolute-scale variant\n const chartDataText =\n props.variant === HorizontalBarChartVariant.AbsoluteScale ? null : _getChartDataText(points!);\n const bars = _createBars(points!);\n const keyVal = _uniqLineText + '_' + index;\n // ToDo - Showtriangle property is per data series. How to account for it in the new stylesheet\n /* const classes = useHorizontalBarChartStyles(props.styles!, {\n width: props.width,\n showTriangle: !!points!.chartData![0].data,\n variant: props.variant,\n }); */\n\n return (\n <div key={index}>\n <div className={classes.items} {...focusAttributes}>\n <div className={classes.chartTitle}>\n {points!.chartTitle && (\n <FocusableTooltipText\n className={classes.chartTitleLeft}\n content={points!.chartTitle}\n accessibilityData={points!.chartTitleAccessibilityData}\n />\n )}\n {chartDataText}\n </div>\n {points!.chartData![0].data && _createBenchmark(points!)}\n <svg ref={barChartSvgRef} className={classes.chart} aria-label={points!.chartTitle}>\n <g\n id={keyVal}\n key={keyVal}\n ref={(e: SVGGElement) => {\n _refCallback(e, points!.chartData![0].legend);\n }}\n // NOTE: points.chartData![0] contains current data value\n onClick={() => {\n const p = points!.chartData![0];\n if (p && p.onClick) {\n p.onClick();\n }\n }}\n >\n {bars}\n </g>\n </svg>\n </div>\n </div>\n );\n })}\n <ChartPopover\n xCalloutValue={xCalloutValue}\n yCalloutValue={yCalloutValue}\n culture={props.culture ?? 'en-us'}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={legend!}\n YValue={hoverValue!}\n color={lineColor}\n isCalloutForStack={false}\n customCallout={{\n customizedCallout: props.onRenderCalloutPerHorizontalBar\n ? props.onRenderCalloutPerHorizontalBar(barCalloutProps!)\n : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(barCalloutProps!)\n : undefined,\n }}\n isCartesian={false}\n />\n {!isSingleBar && (\n <div ref={(e: HTMLDivElement) => (legendContainer.current = e)} className={classes.legendContainer}>\n {legendButtons}\n </div>\n )}\n </div>\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n //TODO validate and fix focus border for issue for popover\n});\nHorizontalBarChart.displayName = 'HorizontalBarChart';\n"],"names":["React","useHorizontalBarChartStyles","HorizontalBarChartVariant","formatToLocaleString","formatScientificLimitWidth","getAccessibleDataObject","useRtl","useId","tokens","useFocusableGroup","ChartPopover","FocusableTooltipText","Legends","HorizontalBarChart","forwardRef","props","forwardedRef","legendContainer","useRef","_uniqLineText","Math","random","toString","substring","_refArray","_isRTL","barChartSvgRef","createRef","_emptyChartId","_barHeight","_calloutAnchorPoint","isSingleBar","hoverValue","setHoverValue","useState","lineColor","setLineColor","legend","setLegend","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","barCalloutProps","setBarCalloutProps","barSpacingInPercent","setBarSpacingInPercent","isPopoverOpen","setPopoverOpen","clickPosition","setClickPosition","x","y","selectedLegend","setSelectedLegend","activeLegend","setActiveLegend","_refCallback","element","legendTitle","push","index","refElement","_hoverOn","event","hoverVal","point","_legendHighlighted","_noLegendHighlighted","updatePosition","clientX","clientY","color","xAxisCalloutData","yAxisCalloutData","_hoverOff","_handleChartMouseLeave","_adjustProps","barHeight","_getChartDataText","data","_getDefaultTextData","_createLegends","chartProps","legendItems","forEach","chartData","dataPoint","legendItem","title","action","hoverAction","onMouseOutAction","legends","centerLegends","overflowText","legendsOverflowText","legendProps","culture","accessibilityData","chartDataAccessibilityData","total","reduce","acc","horizontalBarChartdata","div","className","classes","chartTitleRight","chartDataMode","span","chartDataTextDenominator","dataRatioPercentage","round","_createBenchmark","undefined","totalData","benchmarkData","benchmarkRatio","benchmarkStyles","left","benchmarkContainer","triangle","style","_createBars","noOfBars","count","totalMarginPercent","defaultColors","colorPaletteBlueForeground2","colorPaletteCornflowerForeground2","colorPaletteDarkGreenForeground2","colorPaletteNavyForeground2","colorPaletteDarkOrangeForeground2","startingPoint","prevPosition","value","sumOfPercent","map","pointData","scalingRatio","bars","floor","xValue","placeholderIndex","isLegendSelected","variant","AbsoluteScale","hideLabels","text","key","barValue","dominantBaseline","transform","barLabel","aria-hidden","rect","data-is-focusable","width","height","fill","onMouseOver","onFocus","bind","role","aria-label","_getAriaLabel","onBlur","onMouseLeave","barWrapper","opacity","tabIndex","yValue","callOutAccessibilityData","ariaLabel","_isChartEmpty","length","newX","newY","threshold","distance","sqrt","pow","useEffect","svgWidth","current","getBoundingClientRect","MARGIN_WIDTH_IN_PX","currentBarSpacing","barLegend","focusAttributes","legendButtons","datapoint","root","points","colorBackgroundOverlay","chartDataText","keyVal","items","chartTitle","chartTitleLeft","content","chartTitleAccessibilityData","svg","ref","chart","g","id","e","onClick","p","YValue","isCalloutForStack","customCallout","customizedCallout","onRenderCalloutPerHorizontalBar","customCalloutProps","calloutPropsPerDataPoint","isCartesian","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["HorizontalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useHorizontalBarChartStyles } from './useHorizontalBarChartStyles.styles';\nimport { ChartProps, HorizontalBarChartProps, ChartDataPoint, RefArrayData, HorizontalBarChartVariant } from './index';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { formatScientificLimitWidth, getAccessibleDataObject, useRtl } from '../../utilities/index';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { ChartPopover } from '../CommonComponents/ChartPopover';\nimport { FocusableTooltipText } from '../../utilities/FocusableTooltipText';\nimport { Legend, Legends } from '../../index';\n\n/**\n * HorizontalBarChart is the context wrapper and container for all HorizontalBarChart content/controls,\n * It has no direct style or slot opinions.\n *\n * HorizontalBarChart also provides API interfaces for callbacks that will occur on navigation events.\n */\nexport const HorizontalBarChart: React.FunctionComponent<HorizontalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n HorizontalBarChartProps\n>((props, forwardedRef) => {\n const legendContainer = React.useRef<HTMLDivElement | null>(null);\n const _uniqLineText: string = '_HorizontalLine_' + Math.random().toString(36).substring(7);\n const _refArray: RefArrayData[] = [];\n const _isRTL: boolean = useRtl();\n const barChartSvgRef: React.RefObject<SVGSVGElement> = React.createRef<SVGSVGElement>();\n const _emptyChartId: string = useId('_HBC_empty');\n let _barHeight: number;\n let _calloutAnchorPoint: ChartDataPoint | null;\n let isSingleBar: boolean = true;\n\n const [hoverValue, setHoverValue] = React.useState<string | number | Date | null>('');\n const [lineColor, setLineColor] = React.useState<string>('');\n const [legend, setLegend] = React.useState<string | null>('');\n const [xCalloutValue, setXCalloutValue] = React.useState<string | undefined>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string | undefined>('');\n const [barCalloutProps, setBarCalloutProps] = React.useState<ChartDataPoint>();\n const [barSpacingInPercent, setBarSpacingInPercent] = React.useState<number>(0);\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [selectedLegend, setSelectedLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n\n function _refCallback(element: SVGGElement, legendTitle: string | undefined): void {\n _refArray.push({ index: legendTitle, refElement: element });\n }\n\n function _hoverOn(\n event: React.FocusEvent<SVGRectElement> | React.MouseEvent<SVGRectElement>,\n hoverVal: string | number | Date,\n point: ChartDataPoint,\n ): void {\n if (\n (!isPopoverOpen || legend !== point.legend!) &&\n _calloutAnchorPoint !== point &&\n (_legendHighlighted(point.legend) || _noLegendHighlighted())\n ) {\n _calloutAnchorPoint = point;\n let x = 0;\n let y = 0;\n\n if ('clientX' in event && event.clientX && event.clientY) {\n // Mouse event\n x = event.clientX;\n y = event.clientY;\n } else {\n // Focus event\n const targetRect = (event.target as SVGRectElement).getBoundingClientRect();\n x = targetRect.left + targetRect.width / 2;\n y = targetRect.top + targetRect.height / 2;\n }\n\n updatePosition(x, y);\n setHoverValue(hoverVal);\n setLineColor(point.color!);\n setLegend(point.legend!);\n setXCalloutValue(point.xAxisCalloutData!);\n setYCalloutValue(point.yAxisCalloutData!);\n setBarCalloutProps(point);\n // ToDo - Confirm setting multiple state variables like this is performant.\n }\n }\n\n function _hoverOff(): void {\n /*ToDo. To fix*/\n }\n\n const _handleChartMouseLeave = () => {\n _calloutAnchorPoint = null;\n if (isPopoverOpen) {\n setPopoverOpen(false);\n setHoverValue('');\n setLineColor('');\n setLegend('');\n }\n };\n\n const _adjustProps = (): void => {\n _barHeight = props.barHeight || 12;\n };\n\n const _getChartDataText = (data: ChartProps) => {\n /* return props.barChartCustomData ? (\n <div role=\"text\">{props.barChartCustomData(data)}</div>\n ) : ( */\n return _getDefaultTextData(data);\n //)\n };\n\n function _createLegends(chartProps: ChartProps[]): JSX.Element {\n const legendItems: Legend[] = [];\n chartProps.forEach((point: ChartProps) => {\n point.chartData!.forEach((dataPoint: ChartDataPoint) => {\n const color: string = dataPoint.color!;\n // mapping data to the format Legends component needs\n const legendItem: Legend = {\n title: dataPoint.legend!,\n color,\n action: () => {\n if (selectedLegend === dataPoint.legend) {\n setSelectedLegend('');\n } else {\n setSelectedLegend(dataPoint.legend!);\n }\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n setActiveLegend(dataPoint.legend!);\n },\n onMouseOutAction: () => {\n setActiveLegend('');\n },\n };\n legendItems.push(legendItem);\n });\n });\n const legends = (\n <Legends legends={legendItems} centerLegends overflowText={props.legendsOverflowText} {...props.legendProps} />\n );\n return legends;\n }\n\n function _getDefaultTextData(data: ChartProps): JSX.Element {\n const { culture } = props;\n const accessibilityData = getAccessibleDataObject(data.chartDataAccessibilityData!, 'text', false);\n if (!isSingleBar) {\n const total = data.chartData!.reduce(\n (acc: number, point: ChartDataPoint) =>\n acc + (point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0),\n 0,\n );\n return (\n <div className={classes.chartTitleRight} {...accessibilityData}>\n {formatToLocaleString(total, culture) as React.ReactNode}\n </div>\n );\n }\n const chartDataMode = props.chartDataMode || 'default';\n const chartData: ChartDataPoint = data!.chartData![0];\n const x = chartData.horizontalBarChartdata!.x;\n const y = chartData.horizontalBarChartdata!.total!;\n\n switch (chartDataMode) {\n case 'default':\n return (\n <div className={classes.chartTitleRight} {...accessibilityData}>\n {formatToLocaleString(x, culture) as React.ReactNode}\n </div>\n );\n case 'fraction':\n return (\n <div {...accessibilityData}>\n <span className={classes.chartTitleRight}>{formatToLocaleString(x, culture) as React.ReactNode}</span>\n <span className={classes.chartDataTextDenominator}>{' / ' + formatToLocaleString(y, culture)}</span>\n </div>\n );\n case 'percentage':\n const dataRatioPercentage = `${formatToLocaleString(Math.round((x / y) * 100), culture)}%`;\n return (\n <div className={classes.chartTitleRight} {...accessibilityData}>\n {dataRatioPercentage}\n </div>\n );\n }\n }\n\n function _createBenchmark(data: ChartProps): JSX.Element {\n if (data.chartData![0].horizontalBarChartdata!.total === undefined) {\n return <></>;\n }\n const totalData = data.chartData![0].horizontalBarChartdata!.total!;\n const benchmarkData = data.chartData![0].data;\n const benchmarkRatio = Math.round(((benchmarkData ? benchmarkData : 0) / totalData) * 100);\n\n const benchmarkStyles = {\n left: 'calc(' + benchmarkRatio + '% - 4px)',\n };\n\n return (\n <div className={classes.benchmarkContainer}>\n <div className={classes.triangle} style={benchmarkStyles} />\n </div>\n );\n }\n\n /**\n * This functions returns an array of <rect> elements, which form the bars\n * For each bar an x value, and a width needs to be specified\n * The computations are done based on percentages\n * Extra margin is also provided, in the x value to provide some spacing in between the bars\n */\n\n function _createBars(data: ChartProps): JSX.Element[] {\n const noOfBars =\n data.chartData?.reduce((count: number, point: ChartDataPoint) => (count += (point.data || 0) > 0 ? 1 : 0), 0) ||\n 1;\n const totalMarginPercent = barSpacingInPercent * (noOfBars - 1);\n const defaultColors: string[] = [\n tokens.colorPaletteBlueForeground2,\n tokens.colorPaletteCornflowerForeground2,\n tokens.colorPaletteDarkGreenForeground2,\n tokens.colorPaletteNavyForeground2,\n tokens.colorPaletteDarkOrangeForeground2,\n ];\n // calculating starting point of each bar and it's range\n const startingPoint: number[] = [];\n const total = data.chartData!.reduce(\n (acc: number, point: ChartDataPoint) =>\n acc + (point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0),\n 0,\n );\n let prevPosition = 0;\n let value = 0;\n\n let sumOfPercent = 0;\n data.chartData!.map((point: ChartDataPoint, index: number) => {\n const pointData = point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0;\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n } else if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n\n return sumOfPercent;\n });\n\n /**\n * The %age of the space occupied by the margin needs to subtracted\n * while computing the scaling ratio, since the margins are not being\n * scaled down, only the data is being scaled down from a higher percentage to lower percentage\n * Eg: 95% of the space is taken by the bars, 5% by the margins\n * Now if the sumOfPercent is 120% -> This needs to be scaled down to 95%, not 100%\n * since that's only space available to the bars\n */\n const scalingRatio = sumOfPercent !== 0 ? (sumOfPercent - totalMarginPercent) / 100 : 1;\n\n const bars = data.chartData!.map((point: ChartDataPoint, index: number) => {\n const color: string = point.color ? point.color : defaultColors[Math.floor(Math.random() * 4 + 1)];\n const pointData = point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n } else if (value < 1 && value !== 0) {\n value = 1 / scalingRatio;\n } else {\n value = value / scalingRatio;\n }\n startingPoint.push(prevPosition);\n\n const xValue = point.horizontalBarChartdata!.x;\n const placeholderIndex = 1;\n const isLegendSelected: boolean = _legendHighlighted(point.legend) || _noLegendHighlighted();\n\n // Render bar label instead of placeholder bar for absolute-scale variant\n if (index === placeholderIndex && props.variant === HorizontalBarChartVariant.AbsoluteScale) {\n if (props.hideLabels) {\n return <text key={index} />;\n }\n\n const barValue = data.chartData![0].horizontalBarChartdata!.x;\n\n return (\n <text\n key={index}\n x={`${_isRTL ? 100 - startingPoint[index] : startingPoint[index]}%`}\n y={_barHeight / 2}\n dominantBaseline=\"central\"\n transform={`translate(${_isRTL ? -4 : 4})`}\n className={classes.barLabel}\n aria-hidden={true}\n >\n {formatScientificLimitWidth(barValue)}\n </text>\n );\n }\n\n return (\n <rect\n key={index}\n x={`${\n _isRTL\n ? 100 - startingPoint[index] - value - index * barSpacingInPercent\n : startingPoint[index] + index * barSpacingInPercent\n }%`}\n y={0}\n width={value + '%'}\n height={_barHeight}\n fill={color}\n onMouseOver={point.legend !== '' ? event => _hoverOn(event, xValue, point) : undefined}\n onFocus={point.legend !== '' ? event => _hoverOn(event, xValue, point) : undefined}\n role=\"img\"\n aria-label={_getAriaLabel(point)}\n onBlur={_hoverOff}\n onMouseLeave={_hoverOff}\n className={classes.barWrapper}\n opacity={isLegendSelected ? 1 : 0.1}\n tabIndex={point.legend !== '' ? 0 : undefined}\n />\n );\n });\n return bars;\n }\n\n const _getAriaLabel = (point: ChartDataPoint): string => {\n const legend = point.xAxisCalloutData || point.legend;\n const yValue =\n point.yAxisCalloutData ||\n (point.horizontalBarChartdata\n ? `${point.horizontalBarChartdata.x}/${point.horizontalBarChartdata.total ?? ''}`\n : 0);\n return point.callOutAccessibilityData?.ariaLabel || (legend ? `${legend}, ` : '') + `${yValue}.`;\n };\n\n function _isChartEmpty(): boolean {\n return !(props.data && props.data.length > 0);\n }\n\n function updatePosition(newX: number, newY: number): void {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n\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 React.useEffect(() => {\n const svgWidth = barChartSvgRef?.current?.getBoundingClientRect().width || 0;\n const MARGIN_WIDTH_IN_PX = 3;\n if (svgWidth) {\n const currentBarSpacing = (MARGIN_WIDTH_IN_PX / svgWidth) * 100;\n setBarSpacingInPercent(currentBarSpacing);\n }\n }, [barChartSvgRef]);\n\n function _legendHighlighted(barLegend?: string) {\n if (barLegend === undefined) {\n return false;\n }\n return selectedLegend === barLegend || (selectedLegend === '' && activeLegend === barLegend);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.*/\n\n function _noLegendHighlighted() {\n return selectedLegend === '' && activeLegend === '';\n }\n\n const { data } = props;\n _adjustProps();\n const classes = useHorizontalBarChartStyles(props);\n const focusAttributes = useFocusableGroup();\n const legendButtons = _createLegends(data!);\n\n let datapoint: number | undefined = 0;\n return !_isChartEmpty() ? (\n <div className={classes.root} onMouseLeave={_handleChartMouseLeave}>\n {data!.map((points: ChartProps, index: number) => {\n if (points.chartData && points.chartData![0] && points.chartData![0].horizontalBarChartdata!.x) {\n datapoint = points.chartData![0].horizontalBarChartdata!.x;\n } else {\n datapoint = 0;\n }\n isSingleBar =\n points.chartData!.length === 1 || (points.chartData!.length > 1 && points.chartData![1].legend === '');\n if (isSingleBar) {\n points.chartData![1] = {\n legend: '',\n horizontalBarChartdata: {\n x: points.chartData![0].horizontalBarChartdata!.total! - datapoint!,\n total: points.chartData![0].horizontalBarChartdata!.total!,\n },\n color: tokens.colorBackgroundOverlay,\n };\n }\n\n // Hide right side text of chart title for absolute-scale variant\n const chartDataText =\n props.variant === HorizontalBarChartVariant.AbsoluteScale ? null : _getChartDataText(points!);\n const bars = _createBars(points!);\n const keyVal = _uniqLineText + '_' + index;\n // ToDo - Showtriangle property is per data series. How to account for it in the new stylesheet\n /* const classes = useHorizontalBarChartStyles(props.styles!, {\n width: props.width,\n showTriangle: !!points!.chartData![0].data,\n variant: props.variant,\n }); */\n\n return (\n <div key={index}>\n <div className={classes.items} {...focusAttributes}>\n <div className={classes.chartTitle}>\n {points!.chartTitle && (\n <FocusableTooltipText\n className={classes.chartTitleLeft}\n content={points!.chartTitle}\n accessibilityData={points!.chartTitleAccessibilityData}\n />\n )}\n {chartDataText}\n </div>\n {points!.chartData![0].data && _createBenchmark(points!)}\n <svg ref={barChartSvgRef} className={classes.chart} aria-label={points!.chartTitle}>\n <g\n id={keyVal}\n key={keyVal}\n ref={(e: SVGGElement) => {\n _refCallback(e, points!.chartData![0].legend);\n }}\n // NOTE: points.chartData![0] contains current data value\n onClick={() => {\n const p = points!.chartData![0];\n if (p && p.onClick) {\n p.onClick();\n }\n }}\n >\n {bars}\n </g>\n </svg>\n </div>\n </div>\n );\n })}\n <ChartPopover\n xCalloutValue={xCalloutValue}\n yCalloutValue={yCalloutValue}\n culture={props.culture ?? 'en-us'}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={legend!}\n YValue={hoverValue!}\n color={lineColor}\n isCalloutForStack={false}\n customCallout={{\n customizedCallout: props.onRenderCalloutPerHorizontalBar\n ? props.onRenderCalloutPerHorizontalBar(barCalloutProps!)\n : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(barCalloutProps!)\n : undefined,\n }}\n isCartesian={false}\n />\n {!isSingleBar && (\n <div ref={(e: HTMLDivElement) => (legendContainer.current = e)} className={classes.legendContainer}>\n {legendButtons}\n </div>\n )}\n </div>\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n //TODO validate and fix focus border for issue for popover\n});\nHorizontalBarChart.displayName = 'HorizontalBarChart';\n"],"names":["React","useHorizontalBarChartStyles","HorizontalBarChartVariant","formatToLocaleString","formatScientificLimitWidth","getAccessibleDataObject","useRtl","useId","tokens","useFocusableGroup","ChartPopover","FocusableTooltipText","Legends","HorizontalBarChart","forwardRef","props","forwardedRef","legendContainer","useRef","_uniqLineText","Math","random","toString","substring","_refArray","_isRTL","barChartSvgRef","createRef","_emptyChartId","_barHeight","_calloutAnchorPoint","isSingleBar","hoverValue","setHoverValue","useState","lineColor","setLineColor","legend","setLegend","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","barCalloutProps","setBarCalloutProps","barSpacingInPercent","setBarSpacingInPercent","isPopoverOpen","setPopoverOpen","clickPosition","setClickPosition","x","y","selectedLegend","setSelectedLegend","activeLegend","setActiveLegend","_refCallback","element","legendTitle","push","index","refElement","_hoverOn","event","hoverVal","point","_legendHighlighted","_noLegendHighlighted","clientX","clientY","targetRect","target","getBoundingClientRect","left","width","top","height","updatePosition","color","xAxisCalloutData","yAxisCalloutData","_hoverOff","_handleChartMouseLeave","_adjustProps","barHeight","_getChartDataText","data","_getDefaultTextData","_createLegends","chartProps","legendItems","forEach","chartData","dataPoint","legendItem","title","action","hoverAction","onMouseOutAction","legends","centerLegends","overflowText","legendsOverflowText","legendProps","culture","accessibilityData","chartDataAccessibilityData","total","reduce","acc","horizontalBarChartdata","div","className","classes","chartTitleRight","chartDataMode","span","chartDataTextDenominator","dataRatioPercentage","round","_createBenchmark","undefined","totalData","benchmarkData","benchmarkRatio","benchmarkStyles","benchmarkContainer","triangle","style","_createBars","noOfBars","count","totalMarginPercent","defaultColors","colorPaletteBlueForeground2","colorPaletteCornflowerForeground2","colorPaletteDarkGreenForeground2","colorPaletteNavyForeground2","colorPaletteDarkOrangeForeground2","startingPoint","prevPosition","value","sumOfPercent","map","pointData","scalingRatio","bars","floor","xValue","placeholderIndex","isLegendSelected","variant","AbsoluteScale","hideLabels","text","key","barValue","dominantBaseline","transform","barLabel","aria-hidden","rect","fill","onMouseOver","onFocus","role","aria-label","_getAriaLabel","onBlur","onMouseLeave","barWrapper","opacity","tabIndex","yValue","callOutAccessibilityData","ariaLabel","_isChartEmpty","length","newX","newY","threshold","distance","sqrt","pow","useEffect","svgWidth","current","MARGIN_WIDTH_IN_PX","currentBarSpacing","barLegend","focusAttributes","legendButtons","datapoint","root","points","colorBackgroundOverlay","chartDataText","keyVal","items","chartTitle","chartTitleLeft","content","chartTitleAccessibilityData","svg","ref","chart","g","id","e","onClick","p","YValue","isCalloutForStack","customCallout","customizedCallout","onRenderCalloutPerHorizontalBar","customCalloutProps","calloutPropsPerDataPoint","isCartesian","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { max as d3Max, min as d3Min } from 'd3-array';
3
- import { select as d3Select } from 'd3-selection';
4
3
  import { scaleLinear as d3ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';
5
4
  import { Legends } from '../../components/Legends/Legends';
6
5
  import { useId } from '@fluentui/react-utilities';
7
- import { useHorizontalBarChartWithAxisStyles } from './useHorizontalBarChartWithAxisStyles.styles';
8
6
  import { CartesianChart } from '../CommonComponents/CartesianChart';
9
7
  import { ChartPopover } from '../CommonComponents/ChartPopover';
10
8
  import { ChartTypes, getAccessibleDataObject, YAxisType, XAxisTypes, getTypeOfAxis, getNextColor, areArraysEqual, useRtl, DataVizPalette, getColorFromToken, computeLongestBars, domainRangeOfNumericForHorizontalBarChartWithAxis, groupChartDataByYValue, MIN_DOMAIN_MARGIN } from '../../utilities/index';
@@ -14,7 +12,6 @@ export const HorizontalBarChartWithAxis = /*#__PURE__*/ React.forwardRef((props,
14
12
  const _refArray = [];
15
13
  const _calloutId = useId('callout');
16
14
  const _isRtl = useRtl();
17
- const _tooltipId = useId('HBCWATooltipID_');
18
15
  const _xAxisType = props.data && props.data.length > 0 ? getTypeOfAxis(props.data[0].x, true) : XAxisTypes.NumericAxis;
19
16
  const _yAxisType = props.data && props.data.length > 0 ? getTypeOfAxis(props.data[0].y, false) : YAxisType.StringAxis;
20
17
  const _emptyChartId = useId('_HBCWithAxis_empty');
@@ -27,7 +24,6 @@ export const HorizontalBarChartWithAxis = /*#__PURE__*/ React.forwardRef((props,
27
24
  let _xMax;
28
25
  let _calloutAnchorPoint;
29
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
- let tooltipElement;
31
27
  let _longestBarPositiveTotalValue;
32
28
  let _longestBarNegativeTotalValue;
33
29
  let _domainMargin = MIN_DOMAIN_MARGIN;
@@ -72,7 +68,6 @@ export const HorizontalBarChartWithAxis = /*#__PURE__*/ React.forwardRef((props,
72
68
  chartContainer: (_cartesianChartRef_current_chartContainer = (_cartesianChartRef_current = cartesianChartRef.current) === null || _cartesianChartRef_current === void 0 ? void 0 : _cartesianChartRef_current.chartContainer) !== null && _cartesianChartRef_current_chartContainer !== void 0 ? _cartesianChartRef_current_chartContainer : null
73
69
  };
74
70
  }, []);
75
- const classes = useHorizontalBarChartWithAxisStyles(props);
76
71
  function _adjustProps() {
77
72
  _points = props.data || [];
78
73
  _barHeight = props.barHeight || 32;
@@ -387,35 +382,6 @@ export const HorizontalBarChartWithAxis = /*#__PURE__*/ React.forwardRef((props,
387
382
  bottom: _margins.bottom + _domainMargin
388
383
  };
389
384
  }
390
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
391
- function _tooltipOfYAxislabels(ytooltipProps) {
392
- const { tooltipCls, yAxis, id } = ytooltipProps;
393
- if (yAxis === null) {
394
- return null;
395
- }
396
- const div = d3Select('body').append('div').attr('id', id).attr('class', tooltipCls).style('opacity', 0);
397
- const aa = yAxis.selectAll('#BaseSpan')._groups[0];
398
- const baseSpanLength = aa && Object.keys(aa).length;
399
- const originalDataArray = [];
400
- for(let i = 0; i < baseSpanLength; i++){
401
- const originalData = aa[i].dataset && Object.values(aa[i].dataset)[0];
402
- originalDataArray.push(originalData);
403
- }
404
- const tickObject = yAxis.selectAll('.tick')._groups[0];
405
- const tickObjectLength = tickObject && Object.keys(tickObject).length;
406
- for(let i = 0; i < tickObjectLength; i++){
407
- const d1 = tickObject[i];
408
- d3Select(d1)// eslint-disable-next-line @typescript-eslint/no-explicit-any
409
- .on('mouseover', (event, d)=>{
410
- if (!tooltipElement) {
411
- div.style('opacity', 0.9);
412
- div.text(originalDataArray[i]).style('left', event.pageX + 'px').style('top', event.pageY - 28 + 'px');
413
- }
414
- }).on('mouseout', (d)=>{
415
- div.style('opacity', 0);
416
- });
417
- }
418
- }
419
385
  function _createStringBars(containerHeight, containerWidth, xElement, yElement, singleBarData, // eslint-disable-next-line @typescript-eslint/no-explicit-any
420
386
  xBarScale, // eslint-disable-next-line @typescript-eslint/no-explicit-any
421
387
  yBarScale) {
@@ -493,33 +459,6 @@ export const HorizontalBarChartWithAxis = /*#__PURE__*/ React.forwardRef((props,
493
459
  tabIndex: point.legend !== '' ? 0 : undefined
494
460
  }));
495
461
  });
496
- // Removing un wanted tooltip div from DOM, when prop not provided, for proper cleanup
497
- // of unwanted DOM elements, to prevent flacky behaviour in tooltips , that might occur
498
- // in creating tooltips when tooltips are enabled( as we try to recreate a tspan with _tooltipId)
499
- if (!props.showYAxisLablesTooltip) {
500
- try {
501
- // eslint-disable-next-line @nx/workspace-no-restricted-globals
502
- document.getElementById(_tooltipId) && document.getElementById(_tooltipId).remove();
503
- //eslint-disable-next-line no-empty
504
- } catch (e) {}
505
- }
506
- // Used to display tooltip at y axis labels.
507
- if (props.showYAxisLablesTooltip) {
508
- const yAxisElement = d3Select(yElement).call(yBarScale);
509
- if (!tooltipElement) {
510
- try {
511
- // eslint-disable-next-line @nx/workspace-no-restricted-globals
512
- document.getElementById(_tooltipId) && document.getElementById(_tooltipId).remove();
513
- //eslint-disable-next-line no-empty
514
- } catch (e) {}
515
- }
516
- const ytooltipProps = {
517
- tooltipCls: classes.tooltip,
518
- id: _tooltipId,
519
- yAxis: yAxisElement
520
- };
521
- yAxisElement && _tooltipOfYAxislabels(ytooltipProps);
522
- }
523
462
  return bars;
524
463
  }
525
464
  function _onLegendHover(customMessage) {