@fluentui/react-charts 0.0.0-nightly-20250423-1342.1 → 0.0.0-nightly-20250423-1415.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 (483) hide show
  1. package/CHANGELOG.md +16 -16
  2. package/dist/index.d.ts +3337 -0
  3. package/lib/AreaChart.js +1 -0
  4. package/lib/AreaChart.js.map +1 -0
  5. package/lib/CartesianChart.js +1 -0
  6. package/lib/CartesianChart.js.map +1 -0
  7. package/lib/DeclarativeChart.js +1 -0
  8. package/lib/DeclarativeChart.js.map +1 -0
  9. package/lib/DonutChart.js +1 -0
  10. package/lib/DonutChart.js.map +1 -0
  11. package/lib/GaugeChart.js +1 -0
  12. package/lib/GaugeChart.js.map +1 -0
  13. package/lib/GroupedVerticalBarChart.js +1 -0
  14. package/lib/GroupedVerticalBarChart.js.map +1 -0
  15. package/lib/HeatMapChart.js +1 -0
  16. package/lib/HeatMapChart.js.map +1 -0
  17. package/lib/HorizontalBarChart.js +1 -0
  18. package/lib/HorizontalBarChart.js.map +1 -0
  19. package/lib/HorizontalBarChartWithAxis.js +1 -0
  20. package/lib/HorizontalBarChartWithAxis.js.map +1 -0
  21. package/lib/Legends.js +1 -0
  22. package/lib/Legends.js.map +1 -0
  23. package/lib/LineChart.js +1 -0
  24. package/lib/LineChart.js.map +1 -0
  25. package/lib/Popover.js +1 -0
  26. package/lib/Popover.js.map +1 -0
  27. package/lib/ResponsiveContainer.js +1 -0
  28. package/lib/ResponsiveContainer.js.map +1 -0
  29. package/lib/SankeyChart.js +1 -0
  30. package/lib/SankeyChart.js.map +1 -0
  31. package/lib/ScatterChart.js +1 -0
  32. package/lib/ScatterChart.js.map +1 -0
  33. package/lib/Sparkline.js +1 -0
  34. package/lib/Sparkline.js.map +1 -0
  35. package/lib/VerticalBarChart.js +1 -0
  36. package/lib/VerticalBarChart.js.map +1 -0
  37. package/lib/VerticalStackedBarChart.js +1 -0
  38. package/lib/VerticalStackedBarChart.js.map +1 -0
  39. package/lib/components/AreaChart/AreaChart.js +775 -0
  40. package/lib/components/AreaChart/AreaChart.js.map +1 -0
  41. package/lib/components/AreaChart/AreaChart.types.js +4 -0
  42. package/lib/components/AreaChart/AreaChart.types.js.map +1 -0
  43. package/lib/components/AreaChart/index.js +3 -0
  44. package/lib/components/AreaChart/index.js.map +1 -0
  45. package/lib/components/AreaChart/useAreaChartStyles.styles.js +64 -0
  46. package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -0
  47. package/lib/components/CommonComponents/CartesianChart.js +478 -0
  48. package/lib/components/CommonComponents/CartesianChart.js.map +1 -0
  49. package/lib/components/CommonComponents/CartesianChart.types.js +1 -0
  50. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -0
  51. package/lib/components/CommonComponents/ChartPopover.js +187 -0
  52. package/lib/components/CommonComponents/ChartPopover.js.map +1 -0
  53. package/lib/components/CommonComponents/ChartPopover.types.js +1 -0
  54. package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -0
  55. package/lib/components/CommonComponents/index.js +4 -0
  56. package/lib/components/CommonComponents/index.js.map +1 -0
  57. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +229 -0
  58. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -0
  59. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +178 -0
  60. package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -0
  61. package/lib/components/DeclarativeChart/DeclarativeChart.js +197 -0
  62. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -0
  63. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +811 -0
  64. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -0
  65. package/lib/components/DeclarativeChart/imageExporter.js +221 -0
  66. package/lib/components/DeclarativeChart/imageExporter.js.map +1 -0
  67. package/lib/components/DeclarativeChart/index.js +1 -0
  68. package/lib/components/DeclarativeChart/index.js.map +1 -0
  69. package/lib/components/DonutChart/Arc/Arc.js +110 -0
  70. package/lib/components/DonutChart/Arc/Arc.js.map +1 -0
  71. package/lib/components/DonutChart/Arc/Arc.types.js +1 -0
  72. package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -0
  73. package/lib/components/DonutChart/Arc/index.js +2 -0
  74. package/lib/components/DonutChart/Arc/index.js.map +1 -0
  75. package/lib/components/DonutChart/Arc/useArcStyles.styles.js +54 -0
  76. package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -0
  77. package/lib/components/DonutChart/DonutChart.js +291 -0
  78. package/lib/components/DonutChart/DonutChart.js.map +1 -0
  79. package/lib/components/DonutChart/DonutChart.types.js +1 -0
  80. package/lib/components/DonutChart/DonutChart.types.js.map +1 -0
  81. package/lib/components/DonutChart/Pie/Pie.js +72 -0
  82. package/lib/components/DonutChart/Pie/Pie.js.map +1 -0
  83. package/lib/components/DonutChart/Pie/Pie.types.js +1 -0
  84. package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -0
  85. package/lib/components/DonutChart/Pie/index.js +2 -0
  86. package/lib/components/DonutChart/Pie/index.js.map +1 -0
  87. package/lib/components/DonutChart/Pie/usePieStyles.styles.js +44 -0
  88. package/lib/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -0
  89. package/lib/components/DonutChart/index.js +3 -0
  90. package/lib/components/DonutChart/index.js.map +1 -0
  91. package/lib/components/DonutChart/useDonutChartStyles.styles.js +58 -0
  92. package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -0
  93. package/lib/components/GaugeChart/GaugeChart.js +592 -0
  94. package/lib/components/GaugeChart/GaugeChart.js.map +1 -0
  95. package/lib/components/GaugeChart/GaugeChart.types.js +4 -0
  96. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -0
  97. package/lib/components/GaugeChart/index.js +3 -0
  98. package/lib/components/GaugeChart/index.js.map +1 -0
  99. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +174 -0
  100. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -0
  101. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +501 -0
  102. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -0
  103. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js +4 -0
  104. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -0
  105. package/lib/components/GroupedVerticalBarChart/index.js +3 -0
  106. package/lib/components/GroupedVerticalBarChart/index.js.map +1 -0
  107. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +90 -0
  108. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -0
  109. package/lib/components/HeatMapChart/HeatMapChart.js +588 -0
  110. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -0
  111. package/lib/components/HeatMapChart/HeatMapChart.types.js +4 -0
  112. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -0
  113. package/lib/components/HeatMapChart/index.js +3 -0
  114. package/lib/components/HeatMapChart/index.js.map +1 -0
  115. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +46 -0
  116. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -0
  117. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +402 -0
  118. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -0
  119. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +6 -0
  120. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -0
  121. package/lib/components/HorizontalBarChart/index.js +3 -0
  122. package/lib/components/HorizontalBarChart/index.js.map +1 -0
  123. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +163 -0
  124. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -0
  125. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +571 -0
  126. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -0
  127. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js +4 -0
  128. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -0
  129. package/lib/components/HorizontalBarChartWithAxis/index.js +3 -0
  130. package/lib/components/HorizontalBarChartWithAxis/index.js.map +1 -0
  131. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +76 -0
  132. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -0
  133. package/lib/components/Legends/Legends.js +303 -0
  134. package/lib/components/Legends/Legends.js.map +1 -0
  135. package/lib/components/Legends/Legends.types.js +1 -0
  136. package/lib/components/Legends/Legends.types.js.map +1 -0
  137. package/lib/components/Legends/OverflowMenu.js +25 -0
  138. package/lib/components/Legends/OverflowMenu.js.map +1 -0
  139. package/lib/components/Legends/index.js +3 -0
  140. package/lib/components/Legends/index.js.map +1 -0
  141. package/lib/components/Legends/shape.js +35 -0
  142. package/lib/components/Legends/shape.js.map +1 -0
  143. package/lib/components/Legends/useLegendsStyles.styles.js +147 -0
  144. package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -0
  145. package/lib/components/LineChart/LineChart.js +1034 -0
  146. package/lib/components/LineChart/LineChart.js.map +1 -0
  147. package/lib/components/LineChart/LineChart.types.js +3 -0
  148. package/lib/components/LineChart/LineChart.types.js.map +1 -0
  149. package/lib/components/LineChart/eventAnnotation/EventAnnotation.js +119 -0
  150. package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -0
  151. package/lib/components/LineChart/eventAnnotation/LabelLink.js +57 -0
  152. package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -0
  153. package/lib/components/LineChart/eventAnnotation/Textbox.js +40 -0
  154. package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -0
  155. package/lib/components/LineChart/index.js +4 -0
  156. package/lib/components/LineChart/index.js.map +1 -0
  157. package/lib/components/LineChart/useLineChartStyles.styles.js +65 -0
  158. package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -0
  159. package/lib/components/ResponsiveContainer/ResponsiveContainer.js +65 -0
  160. package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -0
  161. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js +1 -0
  162. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -0
  163. package/lib/components/ResponsiveContainer/index.js +1 -0
  164. package/lib/components/ResponsiveContainer/index.js.map +1 -0
  165. package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +23 -0
  166. package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +1 -0
  167. package/lib/components/SankeyChart/SankeyChart.js +1022 -0
  168. package/lib/components/SankeyChart/SankeyChart.js.map +1 -0
  169. package/lib/components/SankeyChart/SankeyChart.types.js +3 -0
  170. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -0
  171. package/lib/components/SankeyChart/index.js +3 -0
  172. package/lib/components/SankeyChart/index.js.map +1 -0
  173. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +109 -0
  174. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -0
  175. package/lib/components/ScatterChart/ScatterChart.js +465 -0
  176. package/lib/components/ScatterChart/ScatterChart.js.map +1 -0
  177. package/lib/components/ScatterChart/ScatterChart.types.js +4 -0
  178. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -0
  179. package/lib/components/ScatterChart/index.js +3 -0
  180. package/lib/components/ScatterChart/index.js.map +1 -0
  181. package/lib/components/ScatterChart/useScatterChartStyles.styles.js +65 -0
  182. package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -0
  183. package/lib/components/Sparkline/Sparkline.js +119 -0
  184. package/lib/components/Sparkline/Sparkline.js.map +1 -0
  185. package/lib/components/Sparkline/Sparkline.types.js +4 -0
  186. package/lib/components/Sparkline/Sparkline.types.js.map +1 -0
  187. package/lib/components/Sparkline/index.js +3 -0
  188. package/lib/components/Sparkline/index.js.map +1 -0
  189. package/lib/components/Sparkline/useSparklineStyles.styles.js +49 -0
  190. package/lib/components/Sparkline/useSparklineStyles.styles.js.map +1 -0
  191. package/lib/components/VerticalBarChart/VerticalBarChart.js +926 -0
  192. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -0
  193. package/lib/components/VerticalBarChart/VerticalBarChart.types.js +4 -0
  194. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -0
  195. package/lib/components/VerticalBarChart/index.js +3 -0
  196. package/lib/components/VerticalBarChart/index.js.map +1 -0
  197. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +74 -0
  198. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -0
  199. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +904 -0
  200. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -0
  201. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +1 -0
  202. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -0
  203. package/lib/components/VerticalStackedBarChart/index.js +3 -0
  204. package/lib/components/VerticalStackedBarChart/index.js.map +1 -0
  205. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +73 -0
  206. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -0
  207. package/lib/index.js +20 -0
  208. package/lib/index.js.map +1 -0
  209. package/lib/types/DataPoint.js +1 -0
  210. package/lib/types/DataPoint.js.map +1 -0
  211. package/lib/types/EventAnnotation.js +1 -0
  212. package/lib/types/EventAnnotation.js.map +1 -0
  213. package/lib/types/LegendDataItem.js +1 -0
  214. package/lib/types/LegendDataItem.js.map +1 -0
  215. package/lib/types/index.js +2 -0
  216. package/lib/types/index.js.map +1 -0
  217. package/lib/utilities/FocusableTooltipText.js +65 -0
  218. package/lib/utilities/FocusableTooltipText.js.map +1 -0
  219. package/lib/utilities/KeyCodes.js +8 -0
  220. package/lib/utilities/KeyCodes.js.map +1 -0
  221. package/lib/utilities/SVGTooltipText.js +183 -0
  222. package/lib/utilities/SVGTooltipText.js.map +1 -0
  223. package/lib/utilities/async-utils.js +380 -0
  224. package/lib/utilities/async-utils.js.map +1 -0
  225. package/lib/utilities/colors.js +269 -0
  226. package/lib/utilities/colors.js.map +1 -0
  227. package/lib/utilities/getWindow.js +25 -0
  228. package/lib/utilities/getWindow.js.map +1 -0
  229. package/lib/utilities/index.js +3 -0
  230. package/lib/utilities/index.js.map +1 -0
  231. package/lib/utilities/locale-util.js +15 -0
  232. package/lib/utilities/locale-util.js.map +1 -0
  233. package/lib/utilities/overflow-utils.js +27 -0
  234. package/lib/utilities/overflow-utils.js.map +1 -0
  235. package/lib/utilities/string.js +32 -0
  236. package/lib/utilities/string.js.map +1 -0
  237. package/lib/utilities/test-data.js +329 -0
  238. package/lib/utilities/test-data.js.map +1 -0
  239. package/lib/utilities/utilities.js +1405 -0
  240. package/lib/utilities/utilities.js.map +1 -0
  241. package/lib/utilities/vbc-utils.js +27 -0
  242. package/lib/utilities/vbc-utils.js.map +1 -0
  243. package/lib-commonjs/AreaChart.js +6 -0
  244. package/lib-commonjs/AreaChart.js.map +1 -0
  245. package/lib-commonjs/CartesianChart.js +6 -0
  246. package/lib-commonjs/CartesianChart.js.map +1 -0
  247. package/lib-commonjs/DeclarativeChart.js +6 -0
  248. package/lib-commonjs/DeclarativeChart.js.map +1 -0
  249. package/lib-commonjs/DonutChart.js +6 -0
  250. package/lib-commonjs/DonutChart.js.map +1 -0
  251. package/lib-commonjs/GaugeChart.js +6 -0
  252. package/lib-commonjs/GaugeChart.js.map +1 -0
  253. package/lib-commonjs/GroupedVerticalBarChart.js +6 -0
  254. package/lib-commonjs/GroupedVerticalBarChart.js.map +1 -0
  255. package/lib-commonjs/HeatMapChart.js +6 -0
  256. package/lib-commonjs/HeatMapChart.js.map +1 -0
  257. package/lib-commonjs/HorizontalBarChart.js +6 -0
  258. package/lib-commonjs/HorizontalBarChart.js.map +1 -0
  259. package/lib-commonjs/HorizontalBarChartWithAxis.js +6 -0
  260. package/lib-commonjs/HorizontalBarChartWithAxis.js.map +1 -0
  261. package/lib-commonjs/Legends.js +6 -0
  262. package/lib-commonjs/Legends.js.map +1 -0
  263. package/lib-commonjs/LineChart.js +6 -0
  264. package/lib-commonjs/LineChart.js.map +1 -0
  265. package/lib-commonjs/Popover.js +6 -0
  266. package/lib-commonjs/Popover.js.map +1 -0
  267. package/lib-commonjs/ResponsiveContainer.js +6 -0
  268. package/lib-commonjs/ResponsiveContainer.js.map +1 -0
  269. package/lib-commonjs/SankeyChart.js +6 -0
  270. package/lib-commonjs/SankeyChart.js.map +1 -0
  271. package/lib-commonjs/ScatterChart.js +6 -0
  272. package/lib-commonjs/ScatterChart.js.map +1 -0
  273. package/lib-commonjs/Sparkline.js +6 -0
  274. package/lib-commonjs/Sparkline.js.map +1 -0
  275. package/lib-commonjs/VerticalBarChart.js +6 -0
  276. package/lib-commonjs/VerticalBarChart.js.map +1 -0
  277. package/lib-commonjs/VerticalStackedBarChart.js +6 -0
  278. package/lib-commonjs/VerticalStackedBarChart.js.map +1 -0
  279. package/lib-commonjs/components/AreaChart/AreaChart.js +781 -0
  280. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -0
  281. package/lib-commonjs/components/AreaChart/AreaChart.types.js +7 -0
  282. package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -0
  283. package/lib-commonjs/components/AreaChart/index.js +8 -0
  284. package/lib-commonjs/components/AreaChart/index.js.map +1 -0
  285. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +104 -0
  286. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -0
  287. package/lib-commonjs/components/CommonComponents/CartesianChart.js +484 -0
  288. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -0
  289. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js +6 -0
  290. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -0
  291. package/lib-commonjs/components/CommonComponents/ChartPopover.js +197 -0
  292. package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -0
  293. package/lib-commonjs/components/CommonComponents/ChartPopover.types.js +4 -0
  294. package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -0
  295. package/lib-commonjs/components/CommonComponents/index.js +9 -0
  296. package/lib-commonjs/components/CommonComponents/index.js.map +1 -0
  297. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +356 -0
  298. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -0
  299. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +261 -0
  300. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -0
  301. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +205 -0
  302. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -0
  303. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +859 -0
  304. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -0
  305. package/lib-commonjs/components/DeclarativeChart/imageExporter.js +231 -0
  306. package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +1 -0
  307. package/lib-commonjs/components/DeclarativeChart/index.js +6 -0
  308. package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -0
  309. package/lib-commonjs/components/DonutChart/Arc/Arc.js +117 -0
  310. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -0
  311. package/lib-commonjs/components/DonutChart/Arc/Arc.types.js +4 -0
  312. package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -0
  313. package/lib-commonjs/components/DonutChart/Arc/index.js +7 -0
  314. package/lib-commonjs/components/DonutChart/Arc/index.js.map +1 -0
  315. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +83 -0
  316. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -0
  317. package/lib-commonjs/components/DonutChart/DonutChart.js +298 -0
  318. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -0
  319. package/lib-commonjs/components/DonutChart/DonutChart.types.js +6 -0
  320. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -0
  321. package/lib-commonjs/components/DonutChart/Pie/Pie.js +79 -0
  322. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -0
  323. package/lib-commonjs/components/DonutChart/Pie/Pie.types.js +4 -0
  324. package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -0
  325. package/lib-commonjs/components/DonutChart/Pie/index.js +7 -0
  326. package/lib-commonjs/components/DonutChart/Pie/index.js.map +1 -0
  327. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +61 -0
  328. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -0
  329. package/lib-commonjs/components/DonutChart/index.js +8 -0
  330. package/lib-commonjs/components/DonutChart/index.js.map +1 -0
  331. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +82 -0
  332. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -0
  333. package/lib-commonjs/components/GaugeChart/GaugeChart.js +621 -0
  334. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -0
  335. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js +7 -0
  336. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -0
  337. package/lib-commonjs/components/GaugeChart/index.js +8 -0
  338. package/lib-commonjs/components/GaugeChart/index.js.map +1 -0
  339. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +252 -0
  340. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -0
  341. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +507 -0
  342. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -0
  343. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js +7 -0
  344. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -0
  345. package/lib-commonjs/components/GroupedVerticalBarChart/index.js +8 -0
  346. package/lib-commonjs/components/GroupedVerticalBarChart/index.js.map +1 -0
  347. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +139 -0
  348. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -0
  349. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +599 -0
  350. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -0
  351. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js +7 -0
  352. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -0
  353. package/lib-commonjs/components/HeatMapChart/index.js +8 -0
  354. package/lib-commonjs/components/HeatMapChart/index.js.map +1 -0
  355. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +68 -0
  356. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -0
  357. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +408 -0
  358. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -0
  359. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +17 -0
  360. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -0
  361. package/lib-commonjs/components/HorizontalBarChart/index.js +8 -0
  362. package/lib-commonjs/components/HorizontalBarChart/index.js.map +1 -0
  363. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +251 -0
  364. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -0
  365. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +580 -0
  366. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -0
  367. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js +7 -0
  368. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -0
  369. package/lib-commonjs/components/HorizontalBarChartWithAxis/index.js +8 -0
  370. package/lib-commonjs/components/HorizontalBarChartWithAxis/index.js.map +1 -0
  371. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +116 -0
  372. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -0
  373. package/lib-commonjs/components/Legends/Legends.js +313 -0
  374. package/lib-commonjs/components/Legends/Legends.js.map +1 -0
  375. package/lib-commonjs/components/Legends/Legends.types.js +6 -0
  376. package/lib-commonjs/components/Legends/Legends.types.js.map +1 -0
  377. package/lib-commonjs/components/Legends/OverflowMenu.js +36 -0
  378. package/lib-commonjs/components/Legends/OverflowMenu.js.map +1 -0
  379. package/lib-commonjs/components/Legends/index.js +8 -0
  380. package/lib-commonjs/components/Legends/index.js.map +1 -0
  381. package/lib-commonjs/components/Legends/shape.js +46 -0
  382. package/lib-commonjs/components/Legends/shape.js.map +1 -0
  383. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +304 -0
  384. package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -0
  385. package/lib-commonjs/components/LineChart/LineChart.js +1040 -0
  386. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -0
  387. package/lib-commonjs/components/LineChart/LineChart.types.js +6 -0
  388. package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -0
  389. package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js +129 -0
  390. package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -0
  391. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js +68 -0
  392. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -0
  393. package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js +51 -0
  394. package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -0
  395. package/lib-commonjs/components/LineChart/index.js +9 -0
  396. package/lib-commonjs/components/LineChart/index.js.map +1 -0
  397. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +96 -0
  398. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -0
  399. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +76 -0
  400. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -0
  401. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js +6 -0
  402. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -0
  403. package/lib-commonjs/components/ResponsiveContainer/index.js +6 -0
  404. package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -0
  405. package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +47 -0
  406. package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +1 -0
  407. package/lib-commonjs/components/SankeyChart/SankeyChart.js +1038 -0
  408. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -0
  409. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js +6 -0
  410. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -0
  411. package/lib-commonjs/components/SankeyChart/index.js +8 -0
  412. package/lib-commonjs/components/SankeyChart/index.js.map +1 -0
  413. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +179 -0
  414. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -0
  415. package/lib-commonjs/components/ScatterChart/ScatterChart.js +471 -0
  416. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -0
  417. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js +7 -0
  418. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -0
  419. package/lib-commonjs/components/ScatterChart/index.js +8 -0
  420. package/lib-commonjs/components/ScatterChart/index.js.map +1 -0
  421. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +96 -0
  422. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -0
  423. package/lib-commonjs/components/Sparkline/Sparkline.js +125 -0
  424. package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -0
  425. package/lib-commonjs/components/Sparkline/Sparkline.types.js +7 -0
  426. package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -0
  427. package/lib-commonjs/components/Sparkline/index.js +8 -0
  428. package/lib-commonjs/components/Sparkline/index.js.map +1 -0
  429. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +77 -0
  430. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js.map +1 -0
  431. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +928 -0
  432. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -0
  433. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js +7 -0
  434. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -0
  435. package/lib-commonjs/components/VerticalBarChart/index.js +8 -0
  436. package/lib-commonjs/components/VerticalBarChart/index.js.map +1 -0
  437. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +117 -0
  438. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -0
  439. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +915 -0
  440. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -0
  441. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +6 -0
  442. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -0
  443. package/lib-commonjs/components/VerticalStackedBarChart/index.js +8 -0
  444. package/lib-commonjs/components/VerticalStackedBarChart/index.js.map +1 -0
  445. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +120 -0
  446. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -0
  447. package/lib-commonjs/index.js +25 -0
  448. package/lib-commonjs/index.js.map +1 -0
  449. package/lib-commonjs/types/DataPoint.js +4 -0
  450. package/lib-commonjs/types/DataPoint.js.map +1 -0
  451. package/lib-commonjs/types/EventAnnotation.js +6 -0
  452. package/lib-commonjs/types/EventAnnotation.js.map +1 -0
  453. package/lib-commonjs/types/LegendDataItem.js +4 -0
  454. package/lib-commonjs/types/LegendDataItem.js.map +1 -0
  455. package/lib-commonjs/types/index.js +7 -0
  456. package/lib-commonjs/types/index.js.map +1 -0
  457. package/lib-commonjs/utilities/FocusableTooltipText.js +75 -0
  458. package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -0
  459. package/lib-commonjs/utilities/KeyCodes.js +18 -0
  460. package/lib-commonjs/utilities/KeyCodes.js.map +1 -0
  461. package/lib-commonjs/utilities/SVGTooltipText.js +193 -0
  462. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -0
  463. package/lib-commonjs/utilities/async-utils.js +382 -0
  464. package/lib-commonjs/utilities/async-utils.js.map +1 -0
  465. package/lib-commonjs/utilities/colors.js +293 -0
  466. package/lib-commonjs/utilities/colors.js.map +1 -0
  467. package/lib-commonjs/utilities/getWindow.js +28 -0
  468. package/lib-commonjs/utilities/getWindow.js.map +1 -0
  469. package/lib-commonjs/utilities/index.js +8 -0
  470. package/lib-commonjs/utilities/index.js.map +1 -0
  471. package/lib-commonjs/utilities/locale-util.js +25 -0
  472. package/lib-commonjs/utilities/locale-util.js.map +1 -0
  473. package/lib-commonjs/utilities/overflow-utils.js +36 -0
  474. package/lib-commonjs/utilities/overflow-utils.js.map +1 -0
  475. package/lib-commonjs/utilities/string.js +29 -0
  476. package/lib-commonjs/utilities/string.js.map +1 -0
  477. package/lib-commonjs/utilities/test-data.js +383 -0
  478. package/lib-commonjs/utilities/test-data.js.map +1 -0
  479. package/lib-commonjs/utilities/utilities.js +1371 -0
  480. package/lib-commonjs/utilities/utilities.js.map +1 -0
  481. package/lib-commonjs/utilities/vbc-utils.js +45 -0
  482. package/lib-commonjs/utilities/vbc-utils.js.map +1 -0
  483. package/package.json +13 -13
@@ -0,0 +1,588 @@
1
+ import * as React from 'react';
2
+ import { ChartTypes, convertToLocaleString, getAccessibleDataObject, getColorContrast, getTypeOfAxis, resolveCSSVariables, XAxisTypes, YAxisType } from '../../utilities/index';
3
+ import { CartesianChart } from '../CommonComponents/index';
4
+ import { useId } from '@fluentui/react-utilities';
5
+ import { tokens } from '@fluentui/react-theme';
6
+ import { useHeatMapChartStyles } from './useHeatMapChartStyles.styles';
7
+ import { Legends } from '../Legends/index';
8
+ import { scaleLinear as d3ScaleLinear } from 'd3-scale';
9
+ import { format as d3Format } from 'd3-format';
10
+ import { timeFormat as d3TimeFormat } from 'd3-time-format';
11
+ export const HeatMapChart = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
12
+ const classes = useHeatMapChartStyles(props);
13
+ const _stringXAxisDataPoints = React.useRef([]);
14
+ const _stringYAxisDataPoints = React.useRef([]);
15
+ const _dataSet = React.useRef({});
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ const _colorScale = React.useRef();
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ const _xAxisScale = React.useRef();
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ const _yAxisScale = React.useRef();
22
+ const _xAxisType = React.useRef();
23
+ const _yAxisType = React.useRef();
24
+ const _calloutAnchorPoint = React.useRef(null);
25
+ const _emptyChartId = useId('_HeatMap_empty');
26
+ const _margins = React.useRef({});
27
+ const cartesianChartRef = React.useRef(null);
28
+ const [selectedLegend, setSelectedLegend] = React.useState('');
29
+ const [activeLegend, setActiveLegend] = React.useState('');
30
+ const [isPopoverOpen, setPopoverOpen] = React.useState(false);
31
+ const [calloutLegend, setCalloutLegend] = React.useState('');
32
+ const [calloutTextColor, setCalloutTextColor] = React.useState('');
33
+ const [calloutYValue, setCalloutYValue] = React.useState('');
34
+ const [ratio, setRatio] = React.useState();
35
+ const [descriptionMessage, setDescriptionMessage] = React.useState('');
36
+ const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState();
37
+ const [clickPosition, setClickPosition] = React.useState({
38
+ x: 0,
39
+ y: 0
40
+ });
41
+ React.useImperativeHandle(props.componentRef, ()=>{
42
+ var _cartesianChartRef_current;
43
+ var _cartesianChartRef_current_chartContainer;
44
+ return {
45
+ chartContainer: (_cartesianChartRef_current_chartContainer = (_cartesianChartRef_current = cartesianChartRef.current) === null || _cartesianChartRef_current === void 0 ? void 0 : _cartesianChartRef_current.chartContainer) !== null && _cartesianChartRef_current_chartContainer !== void 0 ? _cartesianChartRef_current_chartContainer : null
46
+ };
47
+ }, []);
48
+ const _getXandY = ()=>{
49
+ let x = '';
50
+ let y = '';
51
+ props.data.forEach((item)=>{
52
+ if (item.data && item.data.length > 0) {
53
+ x = item.data[0].x;
54
+ y = item.data[0].y;
55
+ return {
56
+ x,
57
+ y
58
+ };
59
+ }
60
+ });
61
+ return {
62
+ x,
63
+ y
64
+ };
65
+ };
66
+ const _getMargins = (margins)=>{
67
+ _margins.current = margins;
68
+ };
69
+ const _getOpacity = (legendTitle)=>{
70
+ const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '1' : '0.1';
71
+ return opacity;
72
+ };
73
+ const _onRectFocus = (id, data, focusEvent)=>{
74
+ const boundingRect = focusEvent.currentTarget.getBoundingClientRect();
75
+ const clientX = boundingRect.left + boundingRect.width / 2;
76
+ const clientY = boundingRect.top + boundingRect.height / 2;
77
+ updatePosition(clientX, clientY);
78
+ /** Show the callout if highlighted rectangle is focused and Hide it if unhighlighted rectangle is focused */ setPopoverOpen(selectedLegend === '' || selectedLegend === data.legend);
79
+ setCalloutYValue(`${data.rectText}`);
80
+ setCalloutTextColor(Number.isNaN(data.value) ? tokens.colorNeutralForeground1 : _colorScale.current(data.value));
81
+ setCalloutLegend(data.legend);
82
+ setRatio(data.ratio);
83
+ setDescriptionMessage(data.descriptionMessage || '');
84
+ setCallOutAccessibilityData(data.callOutAccessibilityData);
85
+ };
86
+ const _onRectMouseOver = (id, data, mouseEvent)=>{
87
+ mouseEvent.persist();
88
+ if (_calloutAnchorPoint.current !== data) {
89
+ _calloutAnchorPoint.current = data;
90
+ updatePosition(mouseEvent.clientX, mouseEvent.clientY);
91
+ /** Show the callout if highlighted rectangle is hovered and Hide it if unhighlighted rectangle is hovered */ setPopoverOpen(selectedLegend === '' || selectedLegend === data.legend);
92
+ setCalloutYValue(`${data.rectText}`);
93
+ setCalloutTextColor(Number.isNaN(data.value) ? tokens.colorNeutralForeground1 : _colorScale.current(data.value));
94
+ setCalloutLegend(data.legend);
95
+ setRatio(data.ratio);
96
+ setDescriptionMessage(data.descriptionMessage || '');
97
+ setCallOutAccessibilityData(data.callOutAccessibilityData);
98
+ }
99
+ };
100
+ const _onRectBlurOrMouseOut = ()=>{
101
+ /**/ };
102
+ const _handleChartMouseLeave = ()=>{
103
+ _calloutAnchorPoint.current = null;
104
+ setPopoverOpen(false);
105
+ };
106
+ const _getInvertedTextColor = (color)=>{
107
+ return color === tokens.colorNeutralForeground1 ? tokens.colorNeutralBackground1 : tokens.colorNeutralForeground1;
108
+ };
109
+ /**
110
+ * This is the function which is responsible for
111
+ * drawing the rectangle in the graph and also
112
+ * attaching dom events to that rectangles
113
+ */ const _createRectangles = ()=>{
114
+ const rectangles = [];
115
+ const yAxisDataPoints = _stringYAxisDataPoints.current.slice().reverse();
116
+ /**
117
+ * yAxisDataPoint is noting but the DataPoint
118
+ * which will be rendered on the y-axis
119
+ */ yAxisDataPoints.forEach((yAxisDataPoint)=>{
120
+ let index = 0;
121
+ _stringXAxisDataPoints.current.forEach((xAxisDataPoint)=>{
122
+ var _dataSet_current_yAxisDataPoint_index, _dataSet_current_yAxisDataPoint_index1;
123
+ let rectElement;
124
+ const id = `x${xAxisDataPoint}y${yAxisDataPoint}`;
125
+ if (((_dataSet_current_yAxisDataPoint_index = _dataSet.current[yAxisDataPoint][index]) === null || _dataSet_current_yAxisDataPoint_index === void 0 ? void 0 : _dataSet_current_yAxisDataPoint_index.x) === xAxisDataPoint && typeof ((_dataSet_current_yAxisDataPoint_index1 = _dataSet.current[yAxisDataPoint][index]) === null || _dataSet_current_yAxisDataPoint_index1 === void 0 ? void 0 : _dataSet_current_yAxisDataPoint_index1.value) === 'number') {
126
+ var _cartesianChartRef_current;
127
+ /**
128
+ * dataPointObject is an object where it contains information on single
129
+ * data point such as x, y , value, rectText property of the rectangle
130
+ */ const dataPointObject = _dataSet.current[yAxisDataPoint][index];
131
+ let styleRules = '';
132
+ let foregroundColor = tokens.colorNeutralForeground1;
133
+ if ((_cartesianChartRef_current = cartesianChartRef.current) === null || _cartesianChartRef_current === void 0 ? void 0 : _cartesianChartRef_current.chartContainer) {
134
+ styleRules = resolveCSSVariables(cartesianChartRef.current.chartContainer, foregroundColor);
135
+ }
136
+ const contrastRatio = getColorContrast(styleRules, _colorScale.current(dataPointObject.value));
137
+ if (contrastRatio < 3) {
138
+ foregroundColor = _getInvertedTextColor(foregroundColor);
139
+ }
140
+ rectElement = /*#__PURE__*/ React.createElement("g", {
141
+ key: id,
142
+ role: "img",
143
+ "aria-label": _getAriaLabel(dataPointObject),
144
+ tabIndex: _legendHighlighted(dataPointObject.legend) || _noLegendHighlighted() ? 0 : -1,
145
+ fillOpacity: _getOpacity(dataPointObject.legend),
146
+ transform: `translate(${_xAxisScale.current(dataPointObject.x)}, ${_yAxisScale.current(dataPointObject.y)})`,
147
+ onFocus: (e)=>_onRectFocus(id, dataPointObject, e),
148
+ onBlur: _onRectBlurOrMouseOut,
149
+ onMouseOver: (e)=>_onRectMouseOver(id, dataPointObject, e),
150
+ onMouseOut: _onRectBlurOrMouseOut
151
+ }, /*#__PURE__*/ React.createElement("rect", {
152
+ fill: _colorScale.current(dataPointObject.value),
153
+ width: _xAxisScale.current.bandwidth(),
154
+ height: _yAxisScale.current.bandwidth(),
155
+ onClick: dataPointObject.onClick
156
+ }), /*#__PURE__*/ React.createElement("text", {
157
+ dominantBaseline: 'middle',
158
+ textAnchor: 'middle',
159
+ className: classes.text,
160
+ transform: `translate(${_xAxisScale.current.bandwidth() / 2}, ${_yAxisScale.current.bandwidth() / 2})`,
161
+ fill: foregroundColor
162
+ }, convertToLocaleString(dataPointObject.rectText, props.culture)));
163
+ index++;
164
+ } else {
165
+ const dataPointObject = {
166
+ x: xAxisDataPoint,
167
+ y: yAxisDataPoint,
168
+ value: NaN,
169
+ rectText: 'No data available',
170
+ legend: ''
171
+ };
172
+ rectElement = /*#__PURE__*/ React.createElement("g", {
173
+ key: id,
174
+ role: "img",
175
+ "aria-label": _getAriaLabel(dataPointObject),
176
+ tabIndex: _noLegendHighlighted() ? 0 : -1,
177
+ transform: `translate(${_xAxisScale.current(dataPointObject.x)}, ${_yAxisScale.current(dataPointObject.y)})`,
178
+ onFocus: (e)=>_onRectFocus(id, dataPointObject, e),
179
+ onBlur: _onRectBlurOrMouseOut,
180
+ onMouseOver: (e)=>_onRectMouseOver(id, dataPointObject, e),
181
+ onMouseOut: _onRectBlurOrMouseOut
182
+ }, /*#__PURE__*/ React.createElement("rect", {
183
+ fill: "transparent",
184
+ width: _xAxisScale.current.bandwidth(),
185
+ height: _yAxisScale.current.bandwidth()
186
+ }));
187
+ }
188
+ rectangles.push(rectElement);
189
+ });
190
+ });
191
+ return rectangles;
192
+ };
193
+ /**
194
+ * when the legend is hovered we need to highlight
195
+ * all the rectangles which fall under that category
196
+ * and un-highlight the rest of them
197
+ * @param legendTitle
198
+ */ const _onLegendHover = (legendTitle)=>{
199
+ setActiveLegend(legendTitle);
200
+ };
201
+ /**
202
+ * when the mouse is out from the legend , we need
203
+ * to show the graph in initial mode.
204
+ */ const _onLegendLeave = ()=>{
205
+ setActiveLegend('');
206
+ };
207
+ /**
208
+ * @param legendTitle
209
+ * when the legend is clicked we need to highlight
210
+ * all the rectangles which fall under that category
211
+ * and un highlight the rest of them
212
+ */ const _onLegendClick = (legendTitle)=>{
213
+ /**
214
+ * check if the legend is already selceted,
215
+ * if yes, un-select the legend, else
216
+ * set the selected legend state to legendTitle
217
+ */ if (selectedLegend === legendTitle) {
218
+ setSelectedLegend('');
219
+ } else {
220
+ setSelectedLegend(legendTitle);
221
+ }
222
+ };
223
+ const _createLegendBars = ()=>{
224
+ const { data, legendProps } = props;
225
+ const legends = [];
226
+ data.forEach((item)=>{
227
+ const legend = {
228
+ title: item.legend,
229
+ color: _colorScale.current(item.value),
230
+ action: ()=>{
231
+ _onLegendClick(item.legend);
232
+ },
233
+ hoverAction: ()=>{
234
+ _handleChartMouseLeave();
235
+ _onLegendHover(item.legend);
236
+ },
237
+ onMouseOutAction: ()=>{
238
+ _onLegendLeave();
239
+ }
240
+ };
241
+ legends.push(legend);
242
+ });
243
+ return /*#__PURE__*/ React.createElement(Legends, {
244
+ ...legendProps,
245
+ legends: legends
246
+ });
247
+ };
248
+ const _getColorScale = ()=>{
249
+ const { domainValuesForColorScale, rangeValuesForColorScale } = props;
250
+ return d3ScaleLinear().domain(domainValuesForColorScale).range(rangeValuesForColorScale);
251
+ };
252
+ const _getXIndex = (value)=>{
253
+ if (_xAxisType.current === XAxisTypes.DateAxis) {
254
+ return `${value.getTime()}`;
255
+ } else if (_xAxisType.current === XAxisTypes.StringAxis) {
256
+ return value;
257
+ } else if (_xAxisType.current === XAxisTypes.NumericAxis) {
258
+ return `${value}`;
259
+ } else {
260
+ return '';
261
+ }
262
+ };
263
+ const _getYIndex = (value)=>{
264
+ if (_yAxisType.current === YAxisType.DateAxis) {
265
+ return `${value.getTime()}`;
266
+ } else if (_yAxisType.current === YAxisType.StringAxis) {
267
+ return value;
268
+ } else if (_yAxisType.current === YAxisType.NumericAxis) {
269
+ return `${value}`;
270
+ } else {
271
+ return '';
272
+ }
273
+ };
274
+ const { xAxisStringFormatter } = props;
275
+ const _getFormattedLabelForXAxisDataPoint = React.useCallback((point)=>{
276
+ return xAxisStringFormatter ? xAxisStringFormatter(point) : point;
277
+ }, [
278
+ xAxisStringFormatter
279
+ ]);
280
+ const { yAxisStringFormatter } = props;
281
+ const _getFormattedLabelForYAxisDataPoint = React.useCallback((point)=>{
282
+ return yAxisStringFormatter ? yAxisStringFormatter(point) : point;
283
+ }, [
284
+ yAxisStringFormatter
285
+ ]);
286
+ /**
287
+ * This function will return the final sorted and formatted x-axis points
288
+ * which will be rendered on the x-axis
289
+ * @param points
290
+ * @returns x-axis points
291
+ */ const _getXAxisDataPoints = React.useCallback((points)=>{
292
+ let xAxisPoints = [];
293
+ const unFormattedXAxisDataPoints = Object.keys(points).sort((a, b)=>{
294
+ if (_xAxisType.current === XAxisTypes.DateAxis || _xAxisType.current === XAxisTypes.NumericAxis) {
295
+ return +a - +b;
296
+ } else {
297
+ return props.sortOrder === 'none' ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : -1;
298
+ }
299
+ });
300
+ xAxisPoints = unFormattedXAxisDataPoints.map((xPoint)=>{
301
+ if (_xAxisType.current === XAxisTypes.DateAxis) {
302
+ return _getStringFormattedDate(xPoint, props.xAxisDateFormatString);
303
+ } else if (_xAxisType.current === XAxisTypes.NumericAxis) {
304
+ return _getStringFormattedNumber(xPoint, props.xAxisNumberFormatString);
305
+ } else {
306
+ return _getFormattedLabelForXAxisDataPoint(xPoint);
307
+ }
308
+ });
309
+ return xAxisPoints;
310
+ }, [
311
+ _getFormattedLabelForXAxisDataPoint,
312
+ props.sortOrder,
313
+ props.xAxisDateFormatString,
314
+ props.xAxisNumberFormatString
315
+ ]);
316
+ /**
317
+ * This function will return the final sorted and formatted y-axis points
318
+ * which will be rendered on the y-axis
319
+ * @param points
320
+ * @returns yaxis points
321
+ */ const _getYAxisDataPoints = React.useCallback((points)=>{
322
+ let yAxisPoints = [];
323
+ const unFormattedYAxisDataPoints = Object.keys(points).sort((a, b)=>{
324
+ if (_yAxisType.current === YAxisType.DateAxis || _yAxisType.current === YAxisType.NumericAxis) {
325
+ return +a - +b;
326
+ } else {
327
+ return props.sortOrder === 'none' ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : -1;
328
+ }
329
+ });
330
+ yAxisPoints = unFormattedYAxisDataPoints.map((yPoint)=>{
331
+ if (_yAxisType.current === YAxisType.DateAxis) {
332
+ return _getStringFormattedDate(yPoint, props.yAxisDateFormatString);
333
+ } else if (_yAxisType.current === YAxisType.NumericAxis) {
334
+ return _getStringFormattedNumber(yPoint, props.yAxisNumberFormatString);
335
+ } else {
336
+ return _getFormattedLabelForYAxisDataPoint(yPoint);
337
+ }
338
+ });
339
+ return yAxisPoints;
340
+ }, [
341
+ _getFormattedLabelForYAxisDataPoint,
342
+ props.sortOrder,
343
+ props.yAxisDateFormatString,
344
+ props.yAxisNumberFormatString
345
+ ]);
346
+ /**
347
+ * This will create a new data set based on the prop
348
+ * @data
349
+ * We will be using This data set to contsruct our rectangles
350
+ * in the chart, we use this data set becuase, when we loop in this
351
+ * data and build the heat map, it will support accessibility as
352
+ * specified in the figma
353
+ */ const _createNewDataSet = React.useCallback((data, xAxisDateFormatString, xAxisNumberFormatString, yAxisDateFormatString, yAxisNumberFormatString)=>{
354
+ /**
355
+ * please do not destructure any of the props here,
356
+ * instead send them as parameter to this functions so that
357
+ * this functions get called whenever the prop changes
358
+ */ const flattenData = [];
359
+ /**
360
+ * below for each loop will store all the datapoints in the one array.
361
+ * basically it will flatten the nestesd array (data prop) into single array
362
+ * of object. where each object contains x, y, rectText , value and legend propety of single
363
+ * data point.
364
+ */ data.forEach((item)=>{
365
+ item.data.forEach((point)=>{
366
+ flattenData.push({
367
+ ...point,
368
+ legend: item.legend
369
+ });
370
+ });
371
+ });
372
+ const yPoints = {};
373
+ const uniqueYPoints = {};
374
+ const uniqueXPoints = {};
375
+ flattenData.forEach((item)=>{
376
+ const posX = _getXIndex(item.x);
377
+ const posY = _getYIndex(item.y);
378
+ uniqueXPoints[posX] = '1';
379
+ uniqueYPoints[posY] = '1';
380
+ /** we will check if the property(posY) is already there in object, if Yes,
381
+ * then we will append the item in the Array related to the pos, if not
382
+ * then we will simply append the item in the new Array and
383
+ * assign that array to the property (posY) in the Object
384
+ * and finally we will get the array of Objects associated to each
385
+ * property (which is nothing but y data point) and object in the
386
+ * array are noting but x data points associated to the property y
387
+ */ if (yPoints[posY]) {
388
+ yPoints[posY] = [
389
+ ...yPoints[posY],
390
+ item
391
+ ];
392
+ } else {
393
+ yPoints[posY] = [
394
+ item
395
+ ];
396
+ }
397
+ });
398
+ /**
399
+ * we will now sort(ascending) the array's of y data point based on the x value
400
+ * sorting is important to achive the accessibility order of the
401
+ * rectangles and then format the x and y datapoints respectively
402
+ */ Object.keys(yPoints).forEach((item)=>{
403
+ yPoints[item].sort((a, b)=>{
404
+ if (_xAxisType.current === XAxisTypes.StringAxis) {
405
+ return props.sortOrder === 'none' ? 0 : a.x.toLowerCase() > b.x.toLowerCase() ? 1 : -1;
406
+ } else if (_xAxisType.current === XAxisTypes.DateAxis) {
407
+ return a.x.getTime() - b.x.getTime();
408
+ } else if (_xAxisType.current === XAxisTypes.NumericAxis) {
409
+ return +a.x > +b.x ? 1 : -1;
410
+ } else {
411
+ return a.x > b.x ? 1 : -1;
412
+ }
413
+ }).forEach((datapoint)=>{
414
+ if (_xAxisType.current === XAxisTypes.DateAxis) {
415
+ datapoint.x = _getStringFormattedDate(datapoint.x, xAxisDateFormatString);
416
+ }
417
+ if (_xAxisType.current === XAxisTypes.NumericAxis) {
418
+ datapoint.x = _getStringFormattedNumber(datapoint.x, xAxisNumberFormatString);
419
+ }
420
+ if (_xAxisType.current === XAxisTypes.StringAxis) {
421
+ datapoint.x = _getFormattedLabelForXAxisDataPoint(datapoint.x);
422
+ }
423
+ if (_yAxisType.current === YAxisType.DateAxis) {
424
+ datapoint.y = _getStringFormattedDate(datapoint.y, yAxisDateFormatString);
425
+ }
426
+ if (_yAxisType.current === YAxisType.NumericAxis) {
427
+ datapoint.y = _getStringFormattedNumber(datapoint.y, yAxisNumberFormatString);
428
+ }
429
+ if (_yAxisType.current === YAxisType.StringAxis) {
430
+ datapoint.y = _getFormattedLabelForYAxisDataPoint(datapoint.y);
431
+ }
432
+ });
433
+ });
434
+ /**
435
+ * if y-axis data points are of type date or number or if we have string formatter,
436
+ * then we need to change data points to their respective string
437
+ * format, becuase in the private variable this._stringYAxisDatapoints, points will be stored in
438
+ * string format. and in here `yPoint` are not so we need to change, so that
439
+ * function `this._createRectangles` should work perfetcly while looping, and if we don't change
440
+ * then `this._createRectangles` will fail while looping, causing the error
441
+ * Cannot read property 'forEach' of undefined
442
+ */ Object.keys(yPoints).forEach((yPoint)=>{
443
+ if (_yAxisType.current === YAxisType.DateAxis) {
444
+ yPoints[_getStringFormattedDate(yPoint, yAxisDateFormatString)] = yPoints[yPoint];
445
+ } else if (_yAxisType.current === YAxisType.NumericAxis) {
446
+ yPoints[`${_getStringFormattedNumber(yPoint, yAxisNumberFormatString)}`] = yPoints[yPoint];
447
+ } else {
448
+ yPoints[_getFormattedLabelForYAxisDataPoint(yPoint)] = yPoints[yPoint];
449
+ }
450
+ });
451
+ /**
452
+ * assigning new data set
453
+ */ const dataSet = yPoints;
454
+ /**
455
+ * These are the Y axis data points which will get rendered in the
456
+ * Y axis in graph
457
+ */ const yAxisPoints = _getYAxisDataPoints(uniqueYPoints);
458
+ /**
459
+ * These are the x axis data points which will get rendered in the
460
+ * x axis in the graph
461
+ */ const xAxisPoints = _getXAxisDataPoints(uniqueXPoints);
462
+ return {
463
+ dataSet,
464
+ yAxisPoints,
465
+ xAxisPoints
466
+ };
467
+ }, [
468
+ _getFormattedLabelForXAxisDataPoint,
469
+ _getFormattedLabelForYAxisDataPoint,
470
+ _getXAxisDataPoints,
471
+ _getYAxisDataPoints,
472
+ props.sortOrder
473
+ ]);
474
+ const _getStringFormattedDate = (point, formatString)=>{
475
+ const date = new Date();
476
+ date.setTime(+point);
477
+ return d3TimeFormat(formatString || '%b/%d')(date);
478
+ };
479
+ const _getStringFormattedNumber = (point, formatString)=>{
480
+ return d3Format(formatString || '.2~s')(+point);
481
+ };
482
+ /**
483
+ * This function checks if the given legend is highlighted or not.
484
+ * A legend can be highlighted in 2 ways:
485
+ * 1. selection: if the user clicks on it
486
+ * 2. hovering: if there is no selected legend and the user hovers over it
487
+ */ const _legendHighlighted = (legendTitle)=>{
488
+ return selectedLegend === legendTitle || selectedLegend === '' && activeLegend === legendTitle;
489
+ };
490
+ /**
491
+ * This function checks if none of the legends is selected or hovered.
492
+ */ const _noLegendHighlighted = ()=>{
493
+ return selectedLegend === '' && activeLegend === '';
494
+ };
495
+ const _getAriaLabel = (point)=>{
496
+ var _point_callOutAccessibilityData;
497
+ const xValue = point.x;
498
+ const yValue = point.y;
499
+ const legend = point.legend;
500
+ const zValue = point.ratio ? `${point.ratio[0]}/${point.ratio[1]}` : point.rectText || point.value;
501
+ const description = point.descriptionMessage;
502
+ return ((_point_callOutAccessibilityData = point.callOutAccessibilityData) === null || _point_callOutAccessibilityData === void 0 ? void 0 : _point_callOutAccessibilityData.ariaLabel) || `${xValue}, ${yValue}. ${legend}, ${zValue}.` + (description ? ` ${description}.` : '');
503
+ };
504
+ const _isChartEmpty = ()=>{
505
+ return !(props.data && props.data.length > 0);
506
+ };
507
+ const _getChartTitle = ()=>{
508
+ const { chartTitle } = props;
509
+ const numDataPoints = props.data.reduce((acc, curr)=>acc + curr.data.length, 0);
510
+ return (chartTitle ? `${chartTitle}. ` : '') + `Heat map chart with ${numDataPoints} data points. `;
511
+ };
512
+ const updatePosition = (newX, newY)=>{
513
+ const threshold = 1; // Set a threshold for movement
514
+ const { x, y } = clickPosition;
515
+ // Calculate the distance moved
516
+ const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));
517
+ // Update the position only if the distance moved is greater than the threshold
518
+ if (distance > threshold) {
519
+ setClickPosition({
520
+ x: newX,
521
+ y: newY
522
+ });
523
+ }
524
+ };
525
+ const { x, y } = _getXandY();
526
+ _xAxisType.current = getTypeOfAxis(x, true);
527
+ _yAxisType.current = getTypeOfAxis(y, false);
528
+ const { data, xAxisDateFormatString, xAxisNumberFormatString, yAxisDateFormatString, yAxisNumberFormatString } = props;
529
+ _colorScale.current = _getColorScale();
530
+ const { dataSet, xAxisPoints, yAxisPoints } = React.useMemo(()=>_createNewDataSet(data, xAxisDateFormatString, xAxisNumberFormatString, yAxisDateFormatString, yAxisNumberFormatString), [
531
+ _createNewDataSet,
532
+ data,
533
+ xAxisDateFormatString,
534
+ xAxisNumberFormatString,
535
+ yAxisDateFormatString,
536
+ yAxisNumberFormatString
537
+ ]);
538
+ _dataSet.current = dataSet;
539
+ _stringYAxisDataPoints.current = yAxisPoints;
540
+ _stringXAxisDataPoints.current = xAxisPoints;
541
+ const calloutProps = {
542
+ ...props.calloutProps,
543
+ isPopoverOpen,
544
+ YValue: calloutYValue,
545
+ legend: calloutLegend,
546
+ color: calloutTextColor,
547
+ ratio,
548
+ descriptionMessage,
549
+ clickPosition,
550
+ ...getAccessibleDataObject(callOutAccessibilityData, 'text', false)
551
+ };
552
+ const tickParams = {
553
+ tickValues: props.tickValues,
554
+ tickFormat: props.tickFormat
555
+ };
556
+ return !_isChartEmpty() ? /*#__PURE__*/ React.createElement(CartesianChart, {
557
+ ...props,
558
+ chartTitle: _getChartTitle(),
559
+ points: data,
560
+ chartType: ChartTypes.HeatMapChart,
561
+ xAxisType: XAxisTypes.StringAxis,
562
+ yAxisType: YAxisType.StringAxis,
563
+ calloutProps: calloutProps,
564
+ datasetForXAxisDomain: _stringXAxisDataPoints.current,
565
+ stringDatasetForYAxisDomain: _stringYAxisDataPoints.current,
566
+ getmargins: _getMargins,
567
+ xAxisTickCount: _stringXAxisDataPoints.current.length,
568
+ xAxistickSize: 0,
569
+ xAxisPadding: 0.02,
570
+ yAxisPadding: 0.02,
571
+ legendBars: _createLegendBars(),
572
+ onChartMouseLeave: _handleChartMouseLeave,
573
+ componentRef: cartesianChartRef,
574
+ tickParams: tickParams,
575
+ /* eslint-disable react/jsx-no-bind */ children: (p)=>{
576
+ _xAxisScale.current = p.xScale;
577
+ _yAxisScale.current = p.yScale;
578
+ return _createRectangles();
579
+ }
580
+ }) : /*#__PURE__*/ React.createElement("div", {
581
+ id: _emptyChartId,
582
+ role: 'alert',
583
+ style: {
584
+ opacity: '0'
585
+ },
586
+ "aria-label": 'Graph has no data to display'
587
+ });
588
+ });