@fluentui/react-charting 5.17.12 → 5.18.1

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 (313) hide show
  1. package/CHANGELOG.json +45 -1
  2. package/CHANGELOG.md +25 -2
  3. package/config/api-extractor.json +3 -0
  4. package/dist/react-charting.d.ts +3637 -0
  5. package/dist/react-charting.js +1 -1
  6. package/dist/react-charting.min.js +1 -1
  7. package/etc/react-charting.api.md +1518 -0
  8. package/lib/components/AreaChart/AreaChart.d.ts +4 -0
  9. package/lib/components/AreaChart/AreaChart.js +4 -0
  10. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  11. package/lib/components/AreaChart/AreaChart.types.d.ts +4 -0
  12. package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
  13. package/lib/components/CommonComponents/CartesianChart.types.d.ts +1 -1
  14. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  15. package/lib/components/DonutChart/DonutChart.d.ts +4 -0
  16. package/lib/components/DonutChart/DonutChart.js +4 -0
  17. package/lib/components/DonutChart/DonutChart.js.map +1 -1
  18. package/lib/components/DonutChart/DonutChart.types.d.ts +4 -0
  19. package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
  20. package/lib/components/GaugeChart/GaugeChart.d.ts +4 -0
  21. package/lib/components/GaugeChart/GaugeChart.js +4 -0
  22. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  23. package/lib/components/GaugeChart/GaugeChart.types.d.ts +8 -0
  24. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  25. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +1 -0
  26. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +13 -8
  27. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  28. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.d.ts +4 -0
  29. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +4 -0
  30. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  31. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.d.ts +10 -6
  32. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  33. package/lib/components/HeatMapChart/HeatMapChart.d.ts +4 -0
  34. package/lib/components/HeatMapChart/HeatMapChart.js +4 -0
  35. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  36. package/lib/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
  37. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  38. package/lib/components/HorizontalBarChart/HorizontalBarChart.d.ts +4 -0
  39. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +4 -0
  40. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  41. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.d.ts +5 -1
  42. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  43. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.d.ts +4 -0
  44. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +4 -0
  45. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  46. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +4 -0
  47. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  48. package/lib/components/Legends/Legends.d.ts +4 -0
  49. package/lib/components/Legends/Legends.js +4 -0
  50. package/lib/components/Legends/Legends.js.map +1 -1
  51. package/lib/components/Legends/Legends.types.d.ts +20 -0
  52. package/lib/components/Legends/Legends.types.js.map +1 -1
  53. package/lib/components/LineChart/LineChart.d.ts +4 -0
  54. package/lib/components/LineChart/LineChart.js +4 -0
  55. package/lib/components/LineChart/LineChart.js.map +1 -1
  56. package/lib/components/LineChart/LineChart.types.d.ts +4 -0
  57. package/lib/components/LineChart/LineChart.types.js.map +1 -1
  58. package/lib/components/PieChart/PieChart.d.ts +4 -0
  59. package/lib/components/PieChart/PieChart.js +4 -0
  60. package/lib/components/PieChart/PieChart.js.map +1 -1
  61. package/lib/components/PieChart/PieChart.types.d.ts +4 -0
  62. package/lib/components/PieChart/PieChart.types.js.map +1 -1
  63. package/lib/components/SankeyChart/SankeyChart.d.ts +4 -0
  64. package/lib/components/SankeyChart/SankeyChart.js +4 -0
  65. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  66. package/lib/components/SankeyChart/SankeyChart.types.d.ts +4 -0
  67. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  68. package/lib/components/Sparkline/Sparkline.d.ts +4 -0
  69. package/lib/components/Sparkline/Sparkline.js +4 -0
  70. package/lib/components/Sparkline/Sparkline.js.map +1 -1
  71. package/lib/components/Sparkline/Sparkline.types.d.ts +4 -0
  72. package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
  73. package/lib/components/StackedBarChart/MultiStackedBarChart.d.ts +4 -0
  74. package/lib/components/StackedBarChart/MultiStackedBarChart.js +4 -0
  75. package/lib/components/StackedBarChart/MultiStackedBarChart.js.map +1 -1
  76. package/lib/components/StackedBarChart/MultiStackedBarChart.types.d.ts +4 -0
  77. package/lib/components/StackedBarChart/MultiStackedBarChart.types.js.map +1 -1
  78. package/lib/components/StackedBarChart/StackedBarChart.d.ts +4 -0
  79. package/lib/components/StackedBarChart/StackedBarChart.js +4 -0
  80. package/lib/components/StackedBarChart/StackedBarChart.js.map +1 -1
  81. package/lib/components/StackedBarChart/StackedBarChart.types.d.ts +4 -0
  82. package/lib/components/StackedBarChart/StackedBarChart.types.js.map +1 -1
  83. package/lib/components/TreeChart/TreeChart.d.ts +4 -0
  84. package/lib/components/TreeChart/TreeChart.js +4 -0
  85. package/lib/components/TreeChart/TreeChart.js.map +1 -1
  86. package/lib/components/TreeChart/TreeChart.types.d.ts +4 -0
  87. package/lib/components/TreeChart/TreeChart.types.js.map +1 -1
  88. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +20 -6
  89. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  90. package/lib/components/VerticalBarChart/VerticalBarChart.d.ts +4 -0
  91. package/lib/components/VerticalBarChart/VerticalBarChart.js +4 -0
  92. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  93. package/lib/components/VerticalBarChart/VerticalBarChart.types.d.ts +11 -7
  94. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  95. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +9 -5
  96. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  97. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.d.ts +4 -0
  98. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +4 -0
  99. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  100. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +4 -0
  101. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  102. package/lib/version.js +1 -1
  103. package/lib/version.js.map +1 -1
  104. package/lib-amd/components/AreaChart/AreaChart.d.ts +4 -0
  105. package/lib-amd/components/AreaChart/AreaChart.js +4 -0
  106. package/lib-amd/components/AreaChart/AreaChart.js.map +1 -1
  107. package/lib-amd/components/AreaChart/AreaChart.types.d.ts +4 -0
  108. package/lib-amd/components/AreaChart/AreaChart.types.js.map +1 -1
  109. package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +1 -1
  110. package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
  111. package/lib-amd/components/DonutChart/DonutChart.d.ts +4 -0
  112. package/lib-amd/components/DonutChart/DonutChart.js +4 -0
  113. package/lib-amd/components/DonutChart/DonutChart.js.map +1 -1
  114. package/lib-amd/components/DonutChart/DonutChart.types.d.ts +4 -0
  115. package/lib-amd/components/DonutChart/DonutChart.types.js.map +1 -1
  116. package/lib-amd/components/GaugeChart/GaugeChart.d.ts +4 -0
  117. package/lib-amd/components/GaugeChart/GaugeChart.js +4 -0
  118. package/lib-amd/components/GaugeChart/GaugeChart.js.map +1 -1
  119. package/lib-amd/components/GaugeChart/GaugeChart.types.d.ts +8 -0
  120. package/lib-amd/components/GaugeChart/GaugeChart.types.js.map +1 -1
  121. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +1 -0
  122. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +13 -8
  123. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  124. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.d.ts +4 -0
  125. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +4 -0
  126. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  127. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.d.ts +10 -6
  128. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  129. package/lib-amd/components/HeatMapChart/HeatMapChart.d.ts +4 -0
  130. package/lib-amd/components/HeatMapChart/HeatMapChart.js +4 -0
  131. package/lib-amd/components/HeatMapChart/HeatMapChart.js.map +1 -1
  132. package/lib-amd/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
  133. package/lib-amd/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  134. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.d.ts +4 -0
  135. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.js +4 -0
  136. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  137. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.types.d.ts +5 -1
  138. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  139. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.d.ts +4 -0
  140. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +4 -0
  141. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  142. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +4 -0
  143. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  144. package/lib-amd/components/Legends/Legends.d.ts +4 -0
  145. package/lib-amd/components/Legends/Legends.js +4 -0
  146. package/lib-amd/components/Legends/Legends.js.map +1 -1
  147. package/lib-amd/components/Legends/Legends.types.d.ts +20 -0
  148. package/lib-amd/components/Legends/Legends.types.js.map +1 -1
  149. package/lib-amd/components/LineChart/LineChart.d.ts +4 -0
  150. package/lib-amd/components/LineChart/LineChart.js +4 -0
  151. package/lib-amd/components/LineChart/LineChart.js.map +1 -1
  152. package/lib-amd/components/LineChart/LineChart.types.d.ts +4 -0
  153. package/lib-amd/components/LineChart/LineChart.types.js.map +1 -1
  154. package/lib-amd/components/PieChart/PieChart.d.ts +4 -0
  155. package/lib-amd/components/PieChart/PieChart.js +4 -0
  156. package/lib-amd/components/PieChart/PieChart.js.map +1 -1
  157. package/lib-amd/components/PieChart/PieChart.types.d.ts +4 -0
  158. package/lib-amd/components/PieChart/PieChart.types.js.map +1 -1
  159. package/lib-amd/components/SankeyChart/SankeyChart.d.ts +4 -0
  160. package/lib-amd/components/SankeyChart/SankeyChart.js +4 -0
  161. package/lib-amd/components/SankeyChart/SankeyChart.js.map +1 -1
  162. package/lib-amd/components/SankeyChart/SankeyChart.types.d.ts +4 -0
  163. package/lib-amd/components/SankeyChart/SankeyChart.types.js.map +1 -1
  164. package/lib-amd/components/Sparkline/Sparkline.d.ts +4 -0
  165. package/lib-amd/components/Sparkline/Sparkline.js +4 -0
  166. package/lib-amd/components/Sparkline/Sparkline.js.map +1 -1
  167. package/lib-amd/components/Sparkline/Sparkline.types.d.ts +4 -0
  168. package/lib-amd/components/Sparkline/Sparkline.types.js.map +1 -1
  169. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.d.ts +4 -0
  170. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.js +4 -0
  171. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.js.map +1 -1
  172. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.types.d.ts +4 -0
  173. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.types.js.map +1 -1
  174. package/lib-amd/components/StackedBarChart/StackedBarChart.d.ts +4 -0
  175. package/lib-amd/components/StackedBarChart/StackedBarChart.js +4 -0
  176. package/lib-amd/components/StackedBarChart/StackedBarChart.js.map +1 -1
  177. package/lib-amd/components/StackedBarChart/StackedBarChart.types.d.ts +4 -0
  178. package/lib-amd/components/StackedBarChart/StackedBarChart.types.js.map +1 -1
  179. package/lib-amd/components/TreeChart/TreeChart.d.ts +4 -0
  180. package/lib-amd/components/TreeChart/TreeChart.js +4 -0
  181. package/lib-amd/components/TreeChart/TreeChart.js.map +1 -1
  182. package/lib-amd/components/TreeChart/TreeChart.types.d.ts +4 -0
  183. package/lib-amd/components/TreeChart/TreeChart.types.js.map +1 -1
  184. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +20 -6
  185. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  186. package/lib-amd/components/VerticalBarChart/VerticalBarChart.d.ts +4 -0
  187. package/lib-amd/components/VerticalBarChart/VerticalBarChart.js +4 -0
  188. package/lib-amd/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  189. package/lib-amd/components/VerticalBarChart/VerticalBarChart.types.d.ts +11 -7
  190. package/lib-amd/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  191. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +9 -5
  192. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  193. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.d.ts +4 -0
  194. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.js +4 -0
  195. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  196. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +4 -0
  197. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  198. package/lib-amd/version.js +1 -1
  199. package/lib-amd/version.js.map +1 -1
  200. package/lib-commonjs/components/AreaChart/AreaChart.d.ts +4 -0
  201. package/lib-commonjs/components/AreaChart/AreaChart.js +4 -0
  202. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  203. package/lib-commonjs/components/AreaChart/AreaChart.types.d.ts +4 -0
  204. package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
  205. package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +1 -1
  206. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  207. package/lib-commonjs/components/DonutChart/DonutChart.d.ts +4 -0
  208. package/lib-commonjs/components/DonutChart/DonutChart.js +4 -0
  209. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
  210. package/lib-commonjs/components/DonutChart/DonutChart.types.d.ts +4 -0
  211. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  212. package/lib-commonjs/components/GaugeChart/GaugeChart.d.ts +4 -0
  213. package/lib-commonjs/components/GaugeChart/GaugeChart.js +4 -0
  214. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  215. package/lib-commonjs/components/GaugeChart/GaugeChart.types.d.ts +8 -0
  216. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  217. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +1 -0
  218. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +13 -8
  219. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  220. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.d.ts +4 -0
  221. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +4 -0
  222. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  223. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.d.ts +10 -6
  224. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  225. package/lib-commonjs/components/HeatMapChart/HeatMapChart.d.ts +4 -0
  226. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +4 -0
  227. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  228. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
  229. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  230. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.d.ts +4 -0
  231. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +4 -0
  232. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  233. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.d.ts +5 -1
  234. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  235. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.d.ts +4 -0
  236. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +4 -0
  237. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  238. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +4 -0
  239. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  240. package/lib-commonjs/components/Legends/Legends.d.ts +4 -0
  241. package/lib-commonjs/components/Legends/Legends.js +4 -0
  242. package/lib-commonjs/components/Legends/Legends.js.map +1 -1
  243. package/lib-commonjs/components/Legends/Legends.types.d.ts +20 -0
  244. package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
  245. package/lib-commonjs/components/LineChart/LineChart.d.ts +4 -0
  246. package/lib-commonjs/components/LineChart/LineChart.js +4 -0
  247. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  248. package/lib-commonjs/components/LineChart/LineChart.types.d.ts +4 -0
  249. package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
  250. package/lib-commonjs/components/PieChart/PieChart.d.ts +4 -0
  251. package/lib-commonjs/components/PieChart/PieChart.js +4 -0
  252. package/lib-commonjs/components/PieChart/PieChart.js.map +1 -1
  253. package/lib-commonjs/components/PieChart/PieChart.types.d.ts +4 -0
  254. package/lib-commonjs/components/PieChart/PieChart.types.js.map +1 -1
  255. package/lib-commonjs/components/SankeyChart/SankeyChart.d.ts +4 -0
  256. package/lib-commonjs/components/SankeyChart/SankeyChart.js +4 -0
  257. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
  258. package/lib-commonjs/components/SankeyChart/SankeyChart.types.d.ts +4 -0
  259. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  260. package/lib-commonjs/components/Sparkline/Sparkline.d.ts +4 -0
  261. package/lib-commonjs/components/Sparkline/Sparkline.js +4 -0
  262. package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
  263. package/lib-commonjs/components/Sparkline/Sparkline.types.d.ts +4 -0
  264. package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
  265. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.d.ts +4 -0
  266. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.js +4 -0
  267. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.js.map +1 -1
  268. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.types.d.ts +4 -0
  269. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.types.js.map +1 -1
  270. package/lib-commonjs/components/StackedBarChart/StackedBarChart.d.ts +4 -0
  271. package/lib-commonjs/components/StackedBarChart/StackedBarChart.js +4 -0
  272. package/lib-commonjs/components/StackedBarChart/StackedBarChart.js.map +1 -1
  273. package/lib-commonjs/components/StackedBarChart/StackedBarChart.types.d.ts +4 -0
  274. package/lib-commonjs/components/StackedBarChart/StackedBarChart.types.js.map +1 -1
  275. package/lib-commonjs/components/TreeChart/TreeChart.d.ts +4 -0
  276. package/lib-commonjs/components/TreeChart/TreeChart.js +4 -0
  277. package/lib-commonjs/components/TreeChart/TreeChart.js.map +1 -1
  278. package/lib-commonjs/components/TreeChart/TreeChart.types.d.ts +4 -0
  279. package/lib-commonjs/components/TreeChart/TreeChart.types.js.map +1 -1
  280. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +20 -6
  281. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  282. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.d.ts +4 -0
  283. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +4 -0
  284. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  285. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.d.ts +11 -7
  286. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  287. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +9 -5
  288. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  289. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.d.ts +4 -0
  290. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +4 -0
  291. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  292. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +4 -0
  293. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  294. package/lib-commonjs/version.js +1 -1
  295. package/lib-commonjs/version.js.map +1 -1
  296. package/package.json +2 -1
  297. package/src/components/AreaChart/AreaChart.types.ts +5 -0
  298. package/src/components/CommonComponents/CartesianChart.types.ts +1 -1
  299. package/src/components/DonutChart/DonutChart.types.ts +4 -0
  300. package/src/components/GaugeChart/GaugeChart.types.ts +8 -0
  301. package/src/components/HeatMapChart/HeatMapChart.types.ts +4 -0
  302. package/src/components/HorizontalBarChart/HorizontalBarChart.types.ts +5 -1
  303. package/src/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.ts +4 -0
  304. package/src/components/Legends/Legends.types.ts +20 -0
  305. package/src/components/LineChart/LineChart.types.ts +5 -0
  306. package/src/components/PieChart/PieChart.types.ts +4 -0
  307. package/src/components/SankeyChart/SankeyChart.types.ts +4 -0
  308. package/src/components/Sparkline/Sparkline.types.ts +4 -0
  309. package/src/components/StackedBarChart/MultiStackedBarChart.types.ts +4 -0
  310. package/src/components/StackedBarChart/StackedBarChart.types.ts +4 -0
  311. package/src/components/TreeChart/TreeChart.types.ts +4 -0
  312. package/src/components/VerticalBarChart/VerticalBarChart.types.ts +11 -7
  313. package/src/components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts +4 -0
@@ -248,8 +248,8 @@ var VerticalStackedBarChartBase = /** @class */ (function (_super) {
248
248
  role: 'img',
249
249
  };
250
250
  var barHeight = heightValueScale * point.data;
251
- if (barHeight < barMinimumHeight) {
252
- barHeight = barMinimumHeight;
251
+ if (barHeight < Math.max(Math.ceil(_this._yMax / 100.0), barMinimumHeight)) {
252
+ barHeight = Math.max(Math.ceil(_this._yMax / 100.0), barMinimumHeight);
253
253
  }
254
254
  yPoint = yPoint - barHeight - (index ? gapHeight : 0);
255
255
  barTotalValue += point.data;
@@ -257,7 +257,7 @@ var VerticalStackedBarChartBase = /** @class */ (function (_super) {
257
257
  if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {
258
258
  return (React.createElement("path", tslib_1.__assign({ key: index + indexNumber + "".concat(shouldFocusWholeStack), className: _this._classNames.opacityChangeOnHover, d: "\n M ".concat(xPoint, " ").concat(yPoint + barCornerRadius, "\n a ").concat(barCornerRadius, " ").concat(barCornerRadius, " 0 0 1 ").concat(barCornerRadius, " ").concat(-barCornerRadius, "\n h ").concat(_this._barWidth - 2 * barCornerRadius, "\n a ").concat(barCornerRadius, " ").concat(barCornerRadius, " 0 0 1 ").concat(barCornerRadius, " ").concat(barCornerRadius, "\n v ").concat(barHeight - barCornerRadius, "\n h ").concat(-_this._barWidth, "\n z\n "), fill: color, ref: function (e) { return (ref.refElement = e); }, transform: "translate(".concat(xScaleBandwidthTranslate, ", 0)") }, rectFocusProps)));
259
259
  }
260
- if (barHeight < 1) {
260
+ if (barHeight < 0) {
261
261
  return React.createElement(React.Fragment, { key: index + indexNumber }, " ");
262
262
  }
263
263
  return (React.createElement("rect", tslib_1.__assign({ key: index + indexNumber, className: _this._classNames.opacityChangeOnHover, x: xPoint, y: yPoint, width: _this._barWidth, height: barHeight, fill: color, ref: function (e) { return (ref.refElement = e); } }, rectFocusProps, { transform: "translate(".concat(xScaleBandwidthTranslate, ", 0)") })));
@@ -598,8 +598,12 @@ var VerticalStackedBarChartBase = /** @class */ (function (_super) {
598
598
  this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);
599
599
  };
600
600
  VerticalStackedBarChartBase.prototype._onRectFocusHover = function (xAxisPoint, point, color, refSelected) {
601
- if (this._calloutAnchorPoint !== point) {
602
- this._calloutAnchorPoint = point;
601
+ var _a, _b;
602
+ if (((_a = this._calloutAnchorPoint) === null || _a === void 0 ? void 0 : _a.chartDataPoint) !== point || ((_b = this._calloutAnchorPoint) === null || _b === void 0 ? void 0 : _b.xAxisDataPoint) !== xAxisPoint) {
603
+ this._calloutAnchorPoint = {
604
+ chartDataPoint: point,
605
+ xAxisDataPoint: xAxisPoint,
606
+ };
603
607
  this.setState({
604
608
  refSelected: refSelected,
605
609
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL, warnDeprecations, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\nimport { formatPrefix as d3FormatPrefix } from 'd3-format';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n}\nexport class VerticalStackedBarChartBase extends React.Component<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartState\n> {\n private _points: IVerticalStackedChartProps[];\n private _dataset: IDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _calloutAnchorPoint: IVSChartDataPoint | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n selectedLegend: '',\n activeLegend: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._emptyChartId = getId('_VSBC_empty');\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType !== XAxisTypes.NumericAxis && { xAxisInnerPadding: 2 / 3, xAxisOuterPadding: 0 })}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\n props.xScale!,\n props.yScale!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this.state.selectedLegend !== '') {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n xScale: NumericScale,\n yScale: NumericScale,\n containerHeight: number,\n containerWidth: number,\n secondaryYScale?: NumericScale,\n ): JSX.Element => {\n const isNumeric = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumeric);\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const xScaleBandwidthTranslate = isNumeric ? 0 : (xBarScale as any).bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._legendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = isNumeric\n ? xScale(lineObject[item][i - 1].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i - 1].xItem.xAxisPoint as string);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && secondaryYScale;\n const y1 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i - 1].y) : yScale(lineObject[item][i - 1].y);\n const x2 = isNumeric\n ? xScale(lineObject[item][i].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i].xItem.xAxisPoint as string);\n const y2 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i].y) : yScale(lineObject[item][i].y);\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.palette.white}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3}\n strokeLinecap=\"round\"\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...(this.state.selectedLegend === item && {\n onMouseOver: this._lineHover.bind(this, lineObject[item][i - 1]),\n onMouseLeave: this._lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={\n isNumeric\n ? xScale(circlePoint.xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(circlePoint.xItem.xAxisPoint as string)\n }\n cy={\n circlePoint.useSecondaryYScale && secondaryYScale ? secondaryYScale(circlePoint.y) : yScale(circlePoint.y)\n }\n onMouseOver={\n this.state.selectedLegend === item\n ? this._lineHover.bind(this, circlePoint)\n : this._onStackHover.bind(this, circlePoint.xItem)\n }\n {...(this.state.selectedLegend === item && {\n onMouseLeave: this._lineHoverOut,\n })}\n r={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleVisibilityAndRadius = (\n xAxispoint: string | number,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } => {\n const { selectedLegend, activeXAxisDataPoint } = this.state;\n if (selectedLegend !== '') {\n if (xAxispoint === activeXAxisDataPoint && selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxispoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 16;\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line deprecation/deprecation\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n }\n\n private _createDataSetLayer(): IDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IDataPoint[] = this._points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendClick(legendTitle: string): void {\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color: color,\n action: () => {\n this._onLegendClick(point.legend);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n action: () => {\n this._onLegendClick(point.title);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue: point.xAxisCalloutData ? point.xAxisCalloutData : xAxisPoint,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n };\n\n private _lineHoverOut = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n color: '',\n });\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n this.setState({\n refSelected,\n isCalloutVisible: true,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue: stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + value.data, 0);\n const totalHeight = defaultTotalHeight ?? yBarScale(totalData);\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / totalData;\n\n return {\n gapHeight,\n heightValueScale,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n let yPoint = containerHeight - this.margins.bottom!;\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType === XAxisTypes.NumericAxis ? 0 : (xBarScale.bandwidth() - this._barWidth) / 2;\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(point => point.data > 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n const color = point.color ? point.color : this._colors[index];\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._legendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, color, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight = heightValueScale * point.data;\n if (barHeight < barMinimumHeight) {\n barHeight = barMinimumHeight;\n }\n yPoint = yPoint - barHeight - (index ? gapHeight : 0);\n barTotalValue += point.data;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <path\n key={index + indexNumber + `${shouldFocusWholeStack}`}\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={color}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n );\n }\n if (barHeight < 1) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <rect\n key={index + indexNumber}\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n );\n });\n const groupRef: IRefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {!this.props.hideLabels && this._barWidth >= 16 && (\n <text\n x={xPoint + this._barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barTotalValue}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {d3FormatPrefix(barTotalValue < 1000 ? '.2~' : '.1', barTotalValue)(barTotalValue)}\n </text>\n )}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number, isNumeric: boolean) => {\n const yMax = this._yMax;\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (isNumeric) {\n const xMax = d3Max(this._dataset, (point: IDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([\n this.margins.left! + this._domainMargin,\n containerWidth - this.margins.right! - this._barWidth - this._domainMargin,\n ]);\n\n return { xBarScale, yBarScale };\n } else {\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin])\n .paddingInner(2 / 3);\n\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _createStringBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n return (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || 0);\n }\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (singleChartData: IVerticalStackedChartProps, point?: IVSChartDataPoint): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue = singleChartData.xAxisCalloutData || singleChartData.xAxisPoint;\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue = singleChartData.xAxisCalloutData || point.xAxisCalloutData || singleChartData.xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n if (this._xAxisType !== XAxisTypes.NumericAxis) {\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n let barWidth = Math.min(this.props.barWidth || 16, 24);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (3 * this._xAxisLabels.length - 2) * barWidth;\n\n this._domainMargin = MIN_DOMAIN_MARGIN;\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin += (totalWidth - reqWidth) / 2;\n } else {\n /** Maximum possible bar width to maintain 2:1 spacing */\n const maxBandwidth = totalWidth / (3 * this._xAxisLabels.length - 2);\n barWidth = maxBandwidth;\n }\n this._barWidth = barWidth;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.filter(item => item.chartData.length === 0).length === 0\n );\n }\n}\n"]}
1
+ {"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL, warnDeprecations, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\nimport { formatPrefix as d3FormatPrefix } from 'd3-format';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: IVSChartDataPoint;\n};\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n}\nexport class VerticalStackedBarChartBase extends React.Component<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartState\n> {\n private _points: IVerticalStackedChartProps[];\n private _dataset: IDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _calloutAnchorPoint: CalloutAnchorPointData | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n selectedLegend: '',\n activeLegend: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._emptyChartId = getId('_VSBC_empty');\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType !== XAxisTypes.NumericAxis && { xAxisInnerPadding: 2 / 3, xAxisOuterPadding: 0 })}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\n props.xScale!,\n props.yScale!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this.state.selectedLegend !== '') {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n xScale: NumericScale,\n yScale: NumericScale,\n containerHeight: number,\n containerWidth: number,\n secondaryYScale?: NumericScale,\n ): JSX.Element => {\n const isNumeric = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumeric);\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const xScaleBandwidthTranslate = isNumeric ? 0 : (xBarScale as any).bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._legendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = isNumeric\n ? xScale(lineObject[item][i - 1].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i - 1].xItem.xAxisPoint as string);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && secondaryYScale;\n const y1 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i - 1].y) : yScale(lineObject[item][i - 1].y);\n const x2 = isNumeric\n ? xScale(lineObject[item][i].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i].xItem.xAxisPoint as string);\n const y2 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i].y) : yScale(lineObject[item][i].y);\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.palette.white}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3}\n strokeLinecap=\"round\"\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...(this.state.selectedLegend === item && {\n onMouseOver: this._lineHover.bind(this, lineObject[item][i - 1]),\n onMouseLeave: this._lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={\n isNumeric\n ? xScale(circlePoint.xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(circlePoint.xItem.xAxisPoint as string)\n }\n cy={\n circlePoint.useSecondaryYScale && secondaryYScale ? secondaryYScale(circlePoint.y) : yScale(circlePoint.y)\n }\n onMouseOver={\n this.state.selectedLegend === item\n ? this._lineHover.bind(this, circlePoint)\n : this._onStackHover.bind(this, circlePoint.xItem)\n }\n {...(this.state.selectedLegend === item && {\n onMouseLeave: this._lineHoverOut,\n })}\n r={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleVisibilityAndRadius = (\n xAxispoint: string | number,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } => {\n const { selectedLegend, activeXAxisDataPoint } = this.state;\n if (selectedLegend !== '') {\n if (xAxispoint === activeXAxisDataPoint && selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxispoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 16;\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line deprecation/deprecation\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n }\n\n private _createDataSetLayer(): IDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IDataPoint[] = this._points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendClick(legendTitle: string): void {\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color: color,\n action: () => {\n this._onLegendClick(point.legend);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n action: () => {\n this._onLegendClick(point.title);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint?.chartDataPoint !== point || this._calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n this._calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint: xAxisPoint,\n };\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue: point.xAxisCalloutData ? point.xAxisCalloutData : xAxisPoint,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n };\n\n private _lineHoverOut = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n color: '',\n });\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n this.setState({\n refSelected,\n isCalloutVisible: true,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue: stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + value.data, 0);\n const totalHeight = defaultTotalHeight ?? yBarScale(totalData);\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / totalData;\n\n return {\n gapHeight,\n heightValueScale,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n let yPoint = containerHeight - this.margins.bottom!;\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType === XAxisTypes.NumericAxis ? 0 : (xBarScale.bandwidth() - this._barWidth) / 2;\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(point => point.data > 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n const color = point.color ? point.color : this._colors[index];\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._legendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, color, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight = heightValueScale * point.data;\n if (barHeight < Math.max(Math.ceil(this._yMax / 100.0), barMinimumHeight)) {\n barHeight = Math.max(Math.ceil(this._yMax / 100.0), barMinimumHeight);\n }\n yPoint = yPoint - barHeight - (index ? gapHeight : 0);\n barTotalValue += point.data;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <path\n key={index + indexNumber + `${shouldFocusWholeStack}`}\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={color}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <rect\n key={index + indexNumber}\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n );\n });\n const groupRef: IRefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {!this.props.hideLabels && this._barWidth >= 16 && (\n <text\n x={xPoint + this._barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barTotalValue}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {d3FormatPrefix(barTotalValue < 1000 ? '.2~' : '.1', barTotalValue)(barTotalValue)}\n </text>\n )}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number, isNumeric: boolean) => {\n const yMax = this._yMax;\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (isNumeric) {\n const xMax = d3Max(this._dataset, (point: IDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([\n this.margins.left! + this._domainMargin,\n containerWidth - this.margins.right! - this._barWidth - this._domainMargin,\n ]);\n\n return { xBarScale, yBarScale };\n } else {\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin])\n .paddingInner(2 / 3);\n\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _createStringBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n return (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || 0);\n }\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (singleChartData: IVerticalStackedChartProps, point?: IVSChartDataPoint): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue = singleChartData.xAxisCalloutData || singleChartData.xAxisPoint;\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue = singleChartData.xAxisCalloutData || point.xAxisCalloutData || singleChartData.xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n if (this._xAxisType !== XAxisTypes.NumericAxis) {\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n let barWidth = Math.min(this.props.barWidth || 16, 24);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (3 * this._xAxisLabels.length - 2) * barWidth;\n\n this._domainMargin = MIN_DOMAIN_MARGIN;\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin += (totalWidth - reqWidth) / 2;\n } else {\n /** Maximum possible bar width to maintain 2:1 spacing */\n const maxBandwidth = totalWidth / (3 * this._xAxisLabels.length - 2);\n barWidth = maxBandwidth;\n }\n this._barWidth = barWidth;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.filter(item => item.chartData.length === 0).length === 0\n );\n }\n}\n"]}
@@ -1,3 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { IVerticalStackedBarChartProps } from './VerticalStackedBarChart.types';
3
+ /**
4
+ * VerticalStackedBarchart component.
5
+ * {@docCategory VerticalStackedBarChart}
6
+ */
3
7
  export declare const VerticalStackedBarChart: React.FunctionComponent<IVerticalStackedBarChartProps>;
@@ -5,5 +5,9 @@ var Utilities_1 = require("../../Utilities");
5
5
  var VerticalStackedBarChart_base_1 = require("./VerticalStackedBarChart.base");
6
6
  var VerticalStackedBarChart_styles_1 = require("./VerticalStackedBarChart.styles");
7
7
  // Create a VerticalStackedBarChart variant which uses these default styles and this styled subcomponent.
8
+ /**
9
+ * VerticalStackedBarchart component.
10
+ * {@docCategory VerticalStackedBarChart}
11
+ */
8
12
  exports.VerticalStackedBarChart = (0, Utilities_1.styled)(VerticalStackedBarChart_base_1.VerticalStackedBarChartBase, VerticalStackedBarChart_styles_1.getStyles);
9
13
  //# sourceMappingURL=VerticalStackedBarChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalStackedBarChart.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.tsx"],"names":[],"mappings":";;;AACA,6CAAyC;AAMzC,+EAA6E;AAC7E,mFAA6D;AAE7D,yGAAyG;AAC5F,QAAA,uBAAuB,GAA2D,IAAA,kBAAM,EAInG,0DAA2B,EAAE,0CAAS,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport {\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n} from './VerticalStackedBarChart.types';\nimport { VerticalStackedBarChartBase } from './VerticalStackedBarChart.base';\nimport { getStyles } from './VerticalStackedBarChart.styles';\n\n// Create a VerticalStackedBarChart variant which uses these default styles and this styled subcomponent.\nexport const VerticalStackedBarChart: React.FunctionComponent<IVerticalStackedBarChartProps> = styled<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles\n>(VerticalStackedBarChartBase, getStyles);\n"]}
1
+ {"version":3,"file":"VerticalStackedBarChart.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.tsx"],"names":[],"mappings":";;;AACA,6CAAyC;AAMzC,+EAA6E;AAC7E,mFAA6D;AAE7D,yGAAyG;AACzG;;;GAGG;AACU,QAAA,uBAAuB,GAA2D,IAAA,kBAAM,EAInG,0DAA2B,EAAE,0CAAS,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport {\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n} from './VerticalStackedBarChart.types';\nimport { VerticalStackedBarChartBase } from './VerticalStackedBarChart.base';\nimport { getStyles } from './VerticalStackedBarChart.styles';\n\n// Create a VerticalStackedBarChart variant which uses these default styles and this styled subcomponent.\n/**\n * VerticalStackedBarchart component.\n * {@docCategory VerticalStackedBarChart}\n */\nexport const VerticalStackedBarChart: React.FunctionComponent<IVerticalStackedBarChartProps> = styled<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles\n>(VerticalStackedBarChartBase, getStyles);\n"]}
@@ -3,6 +3,10 @@ import { IStyle } from '@fluentui/react/lib/Styling';
3
3
  import { ICalloutProps } from '@fluentui/react/lib/Callout';
4
4
  import { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';
5
5
  import { ICartesianChartProps, ICartesianChartStyleProps, ICartesianChartStyles, ILineChartLineOptions, IVerticalStackedChartProps, IVSChartDataPoint } from '../../index';
6
+ /**
7
+ * IVerticalStackedBarChartProps for VerticalStackedBarchart component.
8
+ * {@docCategory VerticalStackedBarChart}
9
+ */
6
10
  export interface IVerticalStackedBarChartProps extends ICartesianChartProps {
7
11
  /**
8
12
  * Data to render in the chart.
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalStackedBarChart.types.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n ILineChartLineOptions,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n} from '../../index';\n\nexport interface IVerticalStackedBarChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IVerticalStackedChartProps[];\n\n /**\n * Width of each bar in the chart.\n */\n barWidth?: number;\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * Colors from which to select the color of each bar.\n * @deprecated Not using this prop. DIrectly taking color from given data.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<IVerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<IVSChartDataPoint>;\n\n /**\n * props for the callout in the chart\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * yMinValue is not supported for bar charts, so only allow \"undefined\"\n */\n yMinValue?: undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: IVerticalStackedChartProps | IVSChartDataPoint) => void;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: ILineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n}\n\nexport interface IVerticalStackedBarChartStyleProps extends ICartesianChartStyleProps {}\n\nexport interface IVerticalStackedBarChartStyles extends ICartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * Style for the bar labels\n */\n barLabel: IStyle;\n\n /**\n * Style for the chart.\n * @deprecated use root instead.\n */\n chart?: IStyle;\n\n /**\n * Style for the line representing the domain of the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisText?: IStyle;\n\n /**\n * Style for the line representing the domain of the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisText?: IStyle;\n}\n"]}
1
+ {"version":3,"file":"VerticalStackedBarChart.types.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n ILineChartLineOptions,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n} from '../../index';\n\n/**\n * IVerticalStackedBarChartProps for VerticalStackedBarchart component.\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface IVerticalStackedBarChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IVerticalStackedChartProps[];\n\n /**\n * Width of each bar in the chart.\n */\n barWidth?: number;\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * Colors from which to select the color of each bar.\n * @deprecated Not using this prop. DIrectly taking color from given data.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<IVerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<IVSChartDataPoint>;\n\n /**\n * props for the callout in the chart\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * yMinValue is not supported for bar charts, so only allow \"undefined\"\n */\n yMinValue?: undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: IVerticalStackedChartProps | IVSChartDataPoint) => void;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: ILineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n}\n\nexport interface IVerticalStackedBarChartStyleProps extends ICartesianChartStyleProps {}\n\nexport interface IVerticalStackedBarChartStyles extends ICartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * Style for the bar labels\n */\n barLabel: IStyle;\n\n /**\n * Style for the chart.\n * @deprecated use root instead.\n */\n chart?: IStyle;\n\n /**\n * Style for the line representing the domain of the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisText?: IStyle;\n\n /**\n * Style for the line representing the domain of the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisText?: IStyle;\n}\n"]}
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // Do not modify this file; it is generated as part of publish.
4
4
  // The checked in version is a placeholder only and will not be updated.
5
5
  var set_version_1 = require("@fluentui/set-version");
6
- (0, set_version_1.setVersion)('@fluentui/react-charting', '5.17.12');
6
+ (0, set_version_1.setVersion)('@fluentui/react-charting', '5.18.1');
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;AAAA,+DAA+D;AAC/D,wEAAwE;AACxE,qDAAmD;AACnD,IAAA,wBAAU,EAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.17.12');"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;AAAA,+DAA+D;AAC/D,wEAAwE;AACxE,qDAAmD;AACnD,IAAA,wBAAU,EAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.18.1');"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-charting",
3
- "version": "5.17.12",
3
+ "version": "5.18.1",
4
4
  "description": "Experimental React charting components for building experiences for Microsoft 365.",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -31,6 +31,7 @@
31
31
  "@fluentui/react": "*",
32
32
  "@types/react-addons-test-utils": "0.14.18",
33
33
  "@fluentui/jest-serializer-merge-styles": "*",
34
+ "@fluentui/scripts-api-extractor": "*",
34
35
  "@fluentui/scripts-jest": "*",
35
36
  "@fluentui/scripts-tasks": "*",
36
37
  "@fluentui/scripts-webpack": "*",
@@ -16,6 +16,11 @@ import {
16
16
  } from '../CommonComponents/CartesianChart.types';
17
17
 
18
18
  export type { IChildProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, IMargins };
19
+
20
+ /**
21
+ * IAreaChartProps properties for area chart.
22
+ * {@docCategory AreaChart}
23
+ */
19
24
  export interface IAreaChartProps extends ICartesianChartProps {
20
25
  /**
21
26
  * Data to render in the chart.
@@ -529,7 +529,7 @@ export interface IModifiedCartesianChartProps extends ICartesianChartProps {
529
529
  /**
530
530
  * To enable callout for individualbar or complete stack. Using for only Vertical stacked bar chart.
531
531
  * @default false
532
- * @type {boolean}
532
+ * @type \{boolean \}
533
533
  */
534
534
  isCalloutForStack?: boolean;
535
535
 
@@ -6,6 +6,10 @@ import { IChartProps, IChartDataPoint } from './index';
6
6
 
7
7
  export interface IDonutChart {}
8
8
 
9
+ /**
10
+ * IDonutChartProps for Donutchart component.
11
+ * {@docCategory DonutChart}
12
+ */
9
13
  export interface IDonutChartProps extends ICartesianChartProps {
10
14
  /**
11
15
  * Data to render in the chart.
@@ -4,6 +4,10 @@ import { ILegendsProps } from '../Legends/index';
4
4
  import { IAccessibilityProps } from '../../types/index';
5
5
  import { ICalloutProps } from '@fluentui/react/lib/Callout';
6
6
 
7
+ /**
8
+ * IGaugeChartSegment interface for Gaugechart.
9
+ * {@docCategory GaugeChart}
10
+ */
7
11
  export interface IGaugeChartSegment {
8
12
  /**
9
13
  * Legend text for a segment
@@ -31,6 +35,10 @@ export enum GaugeValueFormat {
31
35
  Fraction = 'fraction',
32
36
  }
33
37
 
38
+ /**
39
+ * IGaugeChartProps for Gaugechart component.
40
+ * {@docCategory GaugeChart}
41
+ */
34
42
  export interface IGaugeChartProps {
35
43
  /**
36
44
  * Width of the chart
@@ -9,6 +9,10 @@ import {
9
9
  import { ILegendsProps } from '../Legends/Legends.types';
10
10
  import { IHeatMapChartData } from '../../types/IDataPoint';
11
11
 
12
+ /**
13
+ * IHeatMapChartProps for HeatMapchart component.
14
+ * {@docCategory HeatMapChart}
15
+ */
12
16
  export interface IHeatMapChartProps extends Pick<ICartesianChartProps, Exclude<keyof ICartesianChartProps, 'styles'>> {
13
17
  /**
14
18
  * chart title for the chart
@@ -3,6 +3,10 @@ import { IStyle, ITheme } from '@fluentui/react/lib/Styling';
3
3
  import { ICalloutProps } from '@fluentui/react/lib/Callout';
4
4
  import { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';
5
5
 
6
+ /**
7
+ * IHorizontalBarChartProps for HorizontalBarchart component.
8
+ * {@docCategory HorizontalBarChart}
9
+ */
6
10
  export interface IHorizontalBarChartProps {
7
11
  /**
8
12
  * An array of chart data points for the Horizontal bar chart
@@ -67,7 +71,7 @@ export interface IHorizontalBarChartProps {
67
71
  /**
68
72
  * Custom text to the chart (right side of the chart)
69
73
  * IChartProps will be available as props to the method prop.
70
- * If this method not given, default values (IHorizontalDataPoint {x,y})
74
+ * If this method not given, default values (IHorizontalDataPoint \{x,y\})
71
75
  * will be used to display the data/text based on given chartModeData prop.
72
76
  */
73
77
  barChartCustomData?: IRenderFunction<IChartProps>;
@@ -7,6 +7,10 @@ import {
7
7
  IHorizontalBarChartWithAxisDataPoint,
8
8
  } from '../../index';
9
9
 
10
+ /**
11
+ * IHorizontalBarChartWithAxisProps for HorizontalBarchartWithAxis component.
12
+ * {@docCategory HorizontalBarChartWithAxis}
13
+ */
10
14
  export interface IHorizontalBarChartWithAxisProps extends ICartesianChartProps {
11
15
  /**
12
16
  * Data to render in the chart.