@undp/data-viz 2.3.10 → 2.3.12

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 (245) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.js +16 -16
  3. package/dist/{Axis-D56Gy0se.js → Axis-RyGdzLrG.js} +2 -2
  4. package/dist/{Axis-D56Gy0se.js.map → Axis-RyGdzLrG.js.map} +1 -1
  5. package/dist/{AxisTitle-VFq89Olw.js → AxisTitle-DGjX1_2v.js} +2 -2
  6. package/dist/{AxisTitle-VFq89Olw.js.map → AxisTitle-DGjX1_2v.js.map} +1 -1
  7. package/dist/BarGraph.cjs +1 -1
  8. package/dist/BarGraph.cjs.map +1 -1
  9. package/dist/BarGraph.js +21 -21
  10. package/dist/BarGraph.js.map +1 -1
  11. package/dist/BasicStatCard.cjs +1 -1
  12. package/dist/BasicStatCard.js +2 -2
  13. package/dist/BeeSwarmChart.cjs +1 -1
  14. package/dist/BeeSwarmChart.js +13 -13
  15. package/dist/BiVariateChoroplethMap.cjs +1 -1
  16. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  17. package/dist/BiVariateChoroplethMap.js +13 -13
  18. package/dist/BiVariateChoroplethMap.js.map +1 -1
  19. package/dist/BulletChart.cjs +1 -1
  20. package/dist/BulletChart.cjs.map +1 -1
  21. package/dist/BulletChart.js +19 -19
  22. package/dist/BulletChart.js.map +1 -1
  23. package/dist/ButterflyChart.cjs +1 -1
  24. package/dist/ButterflyChart.cjs.map +1 -1
  25. package/dist/ButterflyChart.js +52 -52
  26. package/dist/ButterflyChart.js.map +1 -1
  27. package/dist/ChoroplethMap.cjs +1 -1
  28. package/dist/ChoroplethMap.cjs.map +1 -1
  29. package/dist/ChoroplethMap.js +13 -13
  30. package/dist/ChoroplethMap.js.map +1 -1
  31. package/dist/CirclePackingGraph.cjs +1 -1
  32. package/dist/CirclePackingGraph.js +4 -4
  33. package/dist/ColorLegend.cjs +1 -1
  34. package/dist/ColorLegend.js +2 -2
  35. package/dist/ColorLegendWithMouseOver.cjs +1 -1
  36. package/dist/ColorLegendWithMouseOver.js +2 -2
  37. package/dist/CopyTextButton.cjs +1 -1
  38. package/dist/CopyTextButton.cjs.map +1 -1
  39. package/dist/CopyTextButton.js +4 -4
  40. package/dist/CopyTextButton.js.map +1 -1
  41. package/dist/CsvDownloadButton.js +2 -2
  42. package/dist/DataCards.cjs +1 -1
  43. package/dist/DataCards.js +7 -7
  44. package/dist/DataTable.cjs +1 -1
  45. package/dist/DataTable.js +4 -4
  46. package/dist/{DetailsModal-BMCTgVsk.js → DetailsModal-C3qlUyFK.js} +3 -3
  47. package/dist/{DetailsModal-BMCTgVsk.js.map → DetailsModal-C3qlUyFK.js.map} +1 -1
  48. package/dist/{DetailsModal-DHttOA80.cjs → DetailsModal-DIRTulvr.cjs} +2 -2
  49. package/dist/{DetailsModal-DHttOA80.cjs.map → DetailsModal-DIRTulvr.cjs.map} +1 -1
  50. package/dist/DifferenceLineChart.cjs +1 -1
  51. package/dist/DifferenceLineChart.js +15 -15
  52. package/dist/DonutChart.cjs +1 -1
  53. package/dist/DonutChart.js +10 -10
  54. package/dist/DotDensityMap.cjs +1 -1
  55. package/dist/DotDensityMap.cjs.map +1 -1
  56. package/dist/DotDensityMap.js +30 -30
  57. package/dist/DotDensityMap.js.map +1 -1
  58. package/dist/{DropdownSelect-D8rFbygC.js → DropdownSelect-B2WTeedJ.js} +2 -2
  59. package/dist/{DropdownSelect-D8rFbygC.js.map → DropdownSelect-B2WTeedJ.js.map} +1 -1
  60. package/dist/DualAxisLineChart.cjs +1 -1
  61. package/dist/DualAxisLineChart.js +12 -12
  62. package/dist/DumbbellChart.cjs +1 -1
  63. package/dist/DumbbellChart.cjs.map +1 -1
  64. package/dist/DumbbellChart.js +19 -19
  65. package/dist/DumbbellChart.js.map +1 -1
  66. package/dist/{EmptyState-dScPFkLy.js → EmptyState-B3fPoH6L.js} +4 -4
  67. package/dist/{EmptyState-dScPFkLy.js.map → EmptyState-B3fPoH6L.js.map} +1 -1
  68. package/dist/{EmptyState-N1eHt3vq.cjs → EmptyState-B4c-CrXs.cjs} +2 -2
  69. package/dist/{EmptyState-N1eHt3vq.cjs.map → EmptyState-B4c-CrXs.cjs.map} +1 -1
  70. package/dist/ExcelDownloadButton.js +2 -2
  71. package/dist/FootNote.cjs +1 -1
  72. package/dist/FootNote.js +2 -2
  73. package/dist/GeoHubCompareMaps.js +3 -3
  74. package/dist/GeoHubMap.js +4 -4
  75. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  76. package/dist/GeoHubMapWithLayerSelection.js +5 -5
  77. package/dist/{GraphContainer-CF6ws3pd.js → GraphContainer-DwMxWRCi.js} +2 -2
  78. package/dist/{GraphContainer-CF6ws3pd.js.map → GraphContainer-DwMxWRCi.js.map} +1 -1
  79. package/dist/GraphDescription.cjs +1 -1
  80. package/dist/GraphDescription.js +2 -2
  81. package/dist/{GraphEl-DjElfY07.cjs → GraphEl-Bgf8w82K.cjs} +2 -2
  82. package/dist/{GraphEl-DjElfY07.cjs.map → GraphEl-Bgf8w82K.cjs.map} +1 -1
  83. package/dist/{GraphEl-Bw-9MUym.js → GraphEl-CXK-LPsj.js} +5 -5
  84. package/dist/{GraphEl-Bw-9MUym.js.map → GraphEl-CXK-LPsj.js.map} +1 -1
  85. package/dist/GraphFooter.cjs +1 -1
  86. package/dist/GraphFooter.js +2 -2
  87. package/dist/GraphHeader.js +1 -1
  88. package/dist/GraphTitle.cjs +1 -1
  89. package/dist/GraphTitle.js +2 -2
  90. package/dist/GriddedGraphs.cjs +1 -1
  91. package/dist/GriddedGraphs.js +6 -6
  92. package/dist/GriddedGraphsFromConfig.js +2 -2
  93. package/dist/HeatMap.cjs +1 -1
  94. package/dist/HeatMap.js +10 -10
  95. package/dist/Histogram.cjs +1 -1
  96. package/dist/Histogram.js +4 -4
  97. package/dist/HybridMap.cjs +1 -1
  98. package/dist/HybridMap.cjs.map +1 -1
  99. package/dist/HybridMap.js +42 -42
  100. package/dist/HybridMap.js.map +1 -1
  101. package/dist/ImageDownloadButton.js +2 -2
  102. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  103. package/dist/LineChartWithConfidenceInterval.js +15 -15
  104. package/dist/LinearColorLegend.cjs +1 -1
  105. package/dist/LinearColorLegend.js +2 -2
  106. package/dist/{Modal-Ch9wvKxF.js → Modal-BV4rkoLM.js} +5 -5
  107. package/dist/{Modal-Ch9wvKxF.js.map → Modal-BV4rkoLM.js.map} +1 -1
  108. package/dist/{Modal-CaYa_TLE.cjs → Modal-ZX55hLH-.cjs} +5 -5
  109. package/dist/{Modal-CaYa_TLE.cjs.map → Modal-ZX55hLH-.cjs.map} +1 -1
  110. package/dist/MultiGraphDashboard.cjs +1 -1
  111. package/dist/MultiGraphDashboard.js +4 -4
  112. package/dist/MultiGraphDashboardFromConfig.js +2 -2
  113. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  114. package/dist/MultiGraphDashboardWideToLongFormat.js +4 -4
  115. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +2 -2
  116. package/dist/MultiLineAltChart.cjs +1 -1
  117. package/dist/MultiLineAltChart.cjs.map +1 -1
  118. package/dist/MultiLineAltChart.d.ts +2 -0
  119. package/dist/MultiLineAltChart.js +393 -391
  120. package/dist/MultiLineAltChart.js.map +1 -1
  121. package/dist/MultiLineChart.cjs +1 -1
  122. package/dist/MultiLineChart.js +15 -15
  123. package/dist/ParetoChart.cjs +1 -1
  124. package/dist/ParetoChart.js +12 -12
  125. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  126. package/dist/PerformanceIntensiveMultiGraphDashboard.js +4 -4
  127. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +2 -2
  128. package/dist/PerformanceIntensiveScrollStory.js +3 -3
  129. package/dist/RadarChart.cjs +1 -1
  130. package/dist/RadarChart.js +9 -9
  131. package/dist/{ReferenceLine-DgtoRgw0.js → ReferenceLine-CNEjAYvv.js} +3 -3
  132. package/dist/{ReferenceLine-DgtoRgw0.js.map → ReferenceLine-CNEjAYvv.js.map} +1 -1
  133. package/dist/{RegressionLine-D2aqeBKp.js → RegressionLine-BDrndQxo.js} +4 -4
  134. package/dist/{RegressionLine-D2aqeBKp.js.map → RegressionLine-BDrndQxo.js.map} +1 -1
  135. package/dist/SVGDownloadButton.js +2 -2
  136. package/dist/SankeyChart.cjs +1 -1
  137. package/dist/SankeyChart.js +9 -9
  138. package/dist/ScatterPlot.cjs +1 -1
  139. package/dist/ScatterPlot.cjs.map +1 -1
  140. package/dist/ScatterPlot.d.ts +2 -0
  141. package/dist/ScatterPlot.js +442 -440
  142. package/dist/ScatterPlot.js.map +1 -1
  143. package/dist/ScrollStory.js +3 -3
  144. package/dist/SimpleLineChart.cjs +1 -1
  145. package/dist/SimpleLineChart.js +16 -16
  146. package/dist/SingleGraphDashboard.cjs +1 -1
  147. package/dist/SingleGraphDashboard.js +6 -6
  148. package/dist/SingleGraphDashboardFromConfig.js +2 -2
  149. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  150. package/dist/SingleGraphDashboardGeoHubMaps.js +3 -3
  151. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +2 -2
  152. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  153. package/dist/SingleGraphDashboardThreeDGraphs.js +6 -6
  154. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +2 -2
  155. package/dist/SlopeChart.cjs +1 -1
  156. package/dist/SlopeChart.js +11 -11
  157. package/dist/{Source-24M277ZQ.cjs → Source-BOSAl3UX.cjs} +2 -2
  158. package/dist/{Source-24M277ZQ.cjs.map → Source-BOSAl3UX.cjs.map} +1 -1
  159. package/dist/{Source-Cu9OHOBj.js → Source-Djkz-7jX.js} +5 -5
  160. package/dist/{Source-Cu9OHOBj.js.map → Source-Djkz-7jX.js.map} +1 -1
  161. package/dist/Source.cjs +1 -1
  162. package/dist/Source.js +3 -3
  163. package/dist/SparkLine.js +5 -5
  164. package/dist/{Spinner--r2RrJV8.js → Spinner-CtJETd5V.js} +2 -2
  165. package/dist/{Spinner--r2RrJV8.js.map → Spinner-CtJETd5V.js.map} +1 -1
  166. package/dist/StatCardFromData.cjs +1 -1
  167. package/dist/StatCardFromData.js +2 -2
  168. package/dist/StripChart.cjs +1 -1
  169. package/dist/StripChart.js +9 -9
  170. package/dist/ThreeDGlobe.cjs +1 -1
  171. package/dist/ThreeDGlobe.js +7 -7
  172. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  173. package/dist/ThresholdColorLegendWithMouseOver.js +2 -2
  174. package/dist/{Tooltip-BRnAz2Gv.js → Tooltip-CohiIbLZ.js} +2 -2
  175. package/dist/{Tooltip-BRnAz2Gv.js.map → Tooltip-CohiIbLZ.js.map} +1 -1
  176. package/dist/TreeMapGraph.cjs +1 -1
  177. package/dist/TreeMapGraph.js +9 -9
  178. package/dist/Typography-CZZxlj1W.cjs +2 -0
  179. package/dist/Typography-CZZxlj1W.cjs.map +1 -0
  180. package/dist/{Typography-CdMGooqp.js → Typography-DMVW6JnV.js} +68 -61
  181. package/dist/Typography-DMVW6JnV.js.map +1 -0
  182. package/dist/UnitChart.cjs +1 -1
  183. package/dist/UnitChart.js +6 -6
  184. package/dist/WaterfallChart.cjs +1 -1
  185. package/dist/WaterfallChart.js +14 -14
  186. package/dist/{XAxesLabels-rhK7lRjO.js → XAxesLabels-IwjMJkYS.js} +3 -3
  187. package/dist/{XAxesLabels-rhK7lRjO.js.map → XAxesLabels-IwjMJkYS.js.map} +1 -1
  188. package/dist/{XTicksAndGridLines-CVZkZkpS.js → XTicksAndGridLines-BDmF9etl.js} +2 -2
  189. package/dist/{XTicksAndGridLines-CVZkZkpS.js.map → XTicksAndGridLines-BDmF9etl.js.map} +1 -1
  190. package/dist/{YAxesLabels-QICWVsHf.js → YAxesLabels-DoGvgHdw.js} +3 -3
  191. package/dist/{YAxesLabels-QICWVsHf.js.map → YAxesLabels-DoGvgHdw.js.map} +1 -1
  192. package/dist/{YTicksAndGridLines-GnXnSRF2.js → YTicksAndGridLines-C3GW1xFG.js} +2 -2
  193. package/dist/{YTicksAndGridLines-GnXnSRF2.js.map → YTicksAndGridLines-C3GW1xFG.js.map} +1 -1
  194. package/dist/{checkIfMultiple-D9fVkeOq.js → checkIfMultiple-B97uOUVq.js} +5 -5
  195. package/dist/{checkIfMultiple-D9fVkeOq.js.map → checkIfMultiple-B97uOUVq.js.map} +1 -1
  196. package/dist/{checkIfMultiple-DxnGtm3t.cjs → checkIfMultiple-TOaaUwS7.cjs} +2 -2
  197. package/dist/{checkIfMultiple-DxnGtm3t.cjs.map → checkIfMultiple-TOaaUwS7.cjs.map} +1 -1
  198. package/dist/{customArea-ASDaSE4u.js → customArea-Cc2whe6P.js} +3 -3
  199. package/dist/{customArea-ASDaSE4u.js.map → customArea-Cc2whe6P.js.map} +1 -1
  200. package/dist/{getSliderMarks-Cvg8zHBU.js → getSliderMarks-vXsR8RrR.js} +2 -2
  201. package/dist/{getSliderMarks-Cvg8zHBU.js.map → getSliderMarks-vXsR8RrR.js.map} +1 -1
  202. package/dist/{index-BzNfurbO.js → index-C6VwVS8W.js} +9 -9
  203. package/dist/{index-BzNfurbO.js.map → index-C6VwVS8W.js.map} +1 -1
  204. package/dist/{index-CHPV5EwG-DecW7_qr.js → index-CHPV5EwG-BCLAYDCV.js} +3 -3
  205. package/dist/{index-CHPV5EwG-DecW7_qr.js.map → index-CHPV5EwG-BCLAYDCV.js.map} +1 -1
  206. package/dist/{index-Dp_SfsUA.js → index-CKpKc9DR.js} +3 -3
  207. package/dist/{index-Dp_SfsUA.js.map → index-CKpKc9DR.js.map} +1 -1
  208. package/dist/{index-B-4y_iGB.js → index-CZ0elhKR.js} +4 -4
  209. package/dist/{index-B-4y_iGB.js.map → index-CZ0elhKR.js.map} +1 -1
  210. package/dist/{index-CtMBjvtq.js → index-Co3YGYe1.js} +3 -3
  211. package/dist/{index-CtMBjvtq.js.map → index-Co3YGYe1.js.map} +1 -1
  212. package/dist/{index-Cw8sCyo_-n4AacHGk.js → index-D6CYcVc7-BOa7Dpvf.js} +5 -5
  213. package/dist/{index-Cw8sCyo_-n4AacHGk.js.map → index-D6CYcVc7-BOa7Dpvf.js.map} +1 -1
  214. package/dist/index-D6CYcVc7-CTEcAtiQ.cjs +2 -0
  215. package/dist/index-D6CYcVc7-CTEcAtiQ.cjs.map +1 -0
  216. package/dist/{index-CSiFiXPj.js → index-D_dtv_T9.js} +3 -3
  217. package/dist/{index-CSiFiXPj.js.map → index-D_dtv_T9.js.map} +1 -1
  218. package/dist/{index-Dzc_aaI9-CG2Ar7l1.js → index-DoS4bGNa-Bgab95kx.js} +2 -2
  219. package/dist/{index-Dzc_aaI9-CG2Ar7l1.js.map → index-DoS4bGNa-Bgab95kx.js.map} +1 -1
  220. package/dist/{index-Dzc_aaI9-C3DbPpy3.cjs → index-DoS4bGNa-C3DbPpy3.cjs} +1 -1
  221. package/dist/{index-Dzc_aaI9-C3DbPpy3.cjs.map → index-DoS4bGNa-C3DbPpy3.cjs.map} +1 -1
  222. package/dist/{index-CXobQn-E.cjs → index-_TlgeI_i.cjs} +2 -2
  223. package/dist/{index-CXobQn-E.cjs.map → index-_TlgeI_i.cjs.map} +1 -1
  224. package/dist/index.cjs +1 -1
  225. package/dist/index.d.ts +4 -0
  226. package/dist/index.js +2 -2
  227. package/dist/{linear-CalFSAaO.js → linear-DNXM5Pdl.js} +3 -3
  228. package/dist/{linear-CalFSAaO.js.map → linear-DNXM5Pdl.js.map} +1 -1
  229. package/dist/{pow-CaIrlM4J.js → pow-BXYLJHCq.js} +2 -2
  230. package/dist/{pow-CaIrlM4J.js.map → pow-BXYLJHCq.js.map} +1 -1
  231. package/dist/{proxy-DRuSUlPL.js → proxy--_f6k3NR.js} +2 -2
  232. package/dist/{proxy-DRuSUlPL.js.map → proxy--_f6k3NR.js.map} +1 -1
  233. package/dist/{string-C_xJ4Wg4.js → string-CbaFIsiV.js} +4 -4
  234. package/dist/{string-C_xJ4Wg4.js.map → string-CbaFIsiV.js.map} +1 -1
  235. package/dist/style.css +1 -1
  236. package/dist/{time-CAtex-RV.js → time-vyz6Y89P.js} +2 -2
  237. package/dist/{time-CAtex-RV.js.map → time-vyz6Y89P.js.map} +1 -1
  238. package/dist/{use-in-view-Dl5L8LtP.js → use-in-view-DqvKAveg.js} +2 -2
  239. package/dist/{use-in-view-Dl5L8LtP.js.map → use-in-view-DqvKAveg.js.map} +1 -1
  240. package/package.json +2 -2
  241. package/dist/Typography-Cc_iHQB-.cjs +0 -2
  242. package/dist/Typography-Cc_iHQB-.cjs.map +0 -1
  243. package/dist/Typography-CdMGooqp.js.map +0 -1
  244. package/dist/index-Cw8sCyo_-CEcCMKUi.cjs +0 -2
  245. package/dist/index-Cw8sCyo_-CEcCMKUi.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BarGraph.cjs","sources":["../src/Components/Graphs/BarGraph/GroupedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/GroupedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/index.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n width: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n minValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n suffix,\r\n prefix,\r\n showValues,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphHeight, maxBarThickness * barOrder.length) : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, y.bandwidth()])\r\n .paddingInner(0.1);\r\n const xTicks = x.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {!checkIfNullOrUndefined(el) ? (\r\n <motion.rect\r\n y={subBarScale(`${j}`)}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: !checkIfNullOrUndefined(el)\r\n ? (el as number) >= 0\r\n ? x(el as number) - x(0)\r\n : x(0) - x(el as number)\r\n : 0,\r\n x: (el as number) >= 0 ? x(0) : x(el as number),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={subBarScale.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\r\n style={{\r\n textAnchor: el ? (el < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dx={el ? (el < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: { x: x(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n x: x(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={0}\r\n x={0 - margin.left}\r\n width={x(minValue < 0 ? 0 : minValue) + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphWidth, maxBarThickness * barOrder.length) : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, x.bandwidth()])\r\n .paddingInner(0.1);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )\r\n : undefined\r\n }\r\n hideAxisLine={hideAxisLine}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={subBarScale(`${j}`)}\r\n width={subBarScale.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n y: y(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n height: !checkIfNullOrUndefined(el)\r\n ? Math.abs(y(el as number) - y(0))\r\n : 0,\r\n y: !checkIfNullOrUndefined(el)\r\n ? (el as number) > 0\r\n ? y(el as number)\r\n : y(0)\r\n : y(0),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy={el ? (el >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: { y: y(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n y: y(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport orderBy from 'lodash.orderby';\r\nimport sum from 'lodash.sum';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels?: boolean;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n showColorScale?: boolean;\r\n minHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n minValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n labelOrder?: string[];\r\n language?: Languages;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n ariaLabel?: string;\r\n resetSelectionOnDoubleClick?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function GroupedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix = '',\r\n prefix = '',\r\n showValues = true,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortParameter,\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\r\n );\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n )\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n )\r\n : ensureCompleteDataForStackedBarChart(\r\n data,\r\n timeline.dateFormat || 'yyyy',\r\n ).filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n styles={styles}\r\n classNames={classNames}\r\n colorDomain={colorDomain}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n BarGraphDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n barColor: string[];\r\n colorDomain: string[];\r\n suffix: string;\r\n prefix: string;\r\n barPadding: number;\r\n showValues: boolean;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n showLabels: boolean;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n maxValue: number;\r\n minValue: number;\r\n highlightedDataPoints: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n labelOrder?: string[];\r\n rtl: boolean;\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n trackColor?: string;\r\n hideAxisLine: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n highlightedDataPoints,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n rtl,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n {trackColor && (\r\n <motion.rect\r\n height={y.bandwidth()}\r\n variants={{\r\n initial: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n width: d.size >= 0 ? x(d.size) - x(0) : x(0) - x(d.size),\r\n x: d.size >= 0 ? x(0) : x(d.size),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={y.bandwidth()}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(d.id) || 0}\r\n x={(d.size || 0) < 0 ? x(0) : 0 - margin.left}\r\n width={(d.size || 0) < 0 ? width - x(0) : x(0) + margin.left}\r\n height={y.bandwidth()}\r\n alignment={d.size ? (d.size < 0 ? 'left' : 'right') : 'right'}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: d.size ? (d.size < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? ' fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dx={d.size ? (d.size < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: d.size ? x(d.size) : x(0),\r\n opacity: 1,\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(d.size, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n colorDomain,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, _i) =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n {trackColor && (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n x: x(`${d.id}`),\r\n y: y(0),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n height: d.size ? Math.abs(y(d.size) - y(0)) : 0,\r\n y: d.size ? (d.size > 0 ? y(d.size) : y(0)) : y(0),\r\n x: x(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={(d.size || 0) < 0 ? 0 : y(0) + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={(d.size || 0) < 0 ? y(0) - 5 : margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment={(d.size || 0) < 0 ? 'bottom' : 'top'}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? 'fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dy={d.size ? (d.size >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(0),\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(d.size || 0),\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(d.size, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n BarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForBarChart } from '@/Utils/ensureCompleteData';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n colors?: string | string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n minHeight?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showValues?: boolean;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain?: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n showLabels?: boolean;\r\n showColorScale?: boolean;\r\n maxValue?: number;\r\n minValue?: number;\r\n trackColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n highlightedDataPoints?: (string | number)[];\r\n dimmedOpacity?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n sortData?: 'asc' | 'desc';\r\n language?: Languages;\r\n showNAColor?: boolean;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\r\n resetSelectionOnDoubleClick?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function SimpleBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n barPadding = 0.25,\r\n showValues = true,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n highlightedDataPoints = [],\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale = true,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n sortData,\r\n labelOrder,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n orientation = 'vertical',\r\n trackColor,\r\n hideAxisLine = false,\r\n } = props;\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\r\n );\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center pb-4' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as (string | number)[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortData\r\n ? orderBy(\r\n ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)),\r\n [\r\n d =>\r\n d.size === undefined\r\n ? sortData === 'asc'\r\n ? (orientation === 'horizontal' ? 1 : -1) * Infinity\r\n : (orientation === 'horizontal' ? -1 : 1) * Infinity\r\n : d.size,\r\n ],\r\n [sortData],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColor={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n selectedColor={selectedColor}\r\n trackColor={trackColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n barPadding={barPadding}\r\n showValues={showValues}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport sum from 'lodash.sum';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels: boolean;\r\n bottomMargin?: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n truncateBy,\r\n width,\r\n height,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showLabels,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([0, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: 0, y: y(`${d.id}`) },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {el ? (\r\n <motion.rect\r\n key={j}\r\n y={0}\r\n style={{ fill: barColors[j] }}\r\n height={y.bandwidth()}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: x(el || 0),\r\n x: x(\r\n j === 0 ? 0 : sum(d.size.filter((element, k) => k < j && element)),\r\n ),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={y.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n dy='0.33em'\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n x:\r\n x(\r\n j === 0\r\n ? 0\r\n : sum(d.size.filter((element, k) => k < j && element)),\r\n ) +\r\n x(el || 0) / 2,\r\n opacity:\r\n el &&\r\n x(el) /\r\n numberFormattingFunction(el, naLabel, precision, prefix, suffix)\r\n .length >\r\n 12\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={0}\r\n x={0 - margin.left}\r\n width={0 + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n className={cn(\r\n 'graph-value graph-value-total text-sm',\r\n !valueColor ? ' fill-primary-gray-700 dark:fill-primary-gray-300' : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n textAnchor: 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n y={y.bandwidth() / 2}\r\n dx={5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n },\r\n whileInView: {\r\n x: x(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(0)}\r\n x2={x(0)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n barPadding,\r\n showLabels,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([0, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(0)}\r\n y2={y(0)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(0, naLabel, precision, prefix, suffix)\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(0),\r\n dx: 0,\r\n dy: -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: x(`${d.id}`), y: 0 },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n transition={{ duration: animate.duration }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={0}\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n fill: barColors[j],\r\n y: y(0),\r\n },\r\n whileInView: {\r\n height: Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ),\r\n y: y(sum(d.size.filter((element, k) => k <= j && element))),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={x.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n y:\r\n y(sum(d.size.filter((element, k) => k <= j && element))) +\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) /\r\n 2,\r\n opacity:\r\n el &&\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) > 20\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n x={x.bandwidth() / 2}\r\n dy={-10}\r\n className={cn(\r\n 'graph-value graph-value-total',\r\n !valueColor\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n : 'text-sm',\r\n classNames?.graphObjectValues,\r\n )}\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n ...(valueColor && { fill: valueColor }),\r\n },\r\n whileInView: {\r\n y: y(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor && { fill: valueColor }),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n showLabels?: boolean;\r\n relativeHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n language?: Languages;\r\n minHeight?: number;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\r\n resetSelectionOnDoubleClick?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n showColorScale?: boolean;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function StackedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showLabels = true,\r\n relativeHeight,\r\n showValues = true,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n sortParameter,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n showColorScale = true,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\r\n );\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? d.date ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d => sum(d.size.filter(l => !checkIfNullOrUndefined(l))) || 0),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n rtl={language === 'he' || language === 'ar'}\r\n labelOrder={labelOrder}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n colorDomain={colorDomain}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import { GroupedBarGraphEl } from './GroupedBarGraph';\r\nimport { SimpleBarGraphEl } from './SimpleBarGraph';\r\nimport { StackedBarGraphEl } from './StackedBarGraph';\r\n\r\nimport {\r\n ReferenceDataType,\r\n BarGraphDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n GroupedBarGraphDataType,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for bars */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Track color (i.e. the color of the bars background) of the bar chart */\r\n trackColor?: string;\r\n /** Toggles if data point which are undefined or has value null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function SimpleBarGraph(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n suffix,\r\n prefix,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n sortData,\r\n labelOrder,\r\n showNAColor,\r\n minHeight,\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n timeline,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine = false,\r\n } = props;\r\n return (\r\n <SimpleBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={suffix}\r\n prefix={prefix}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n showColorScale={showColorScale}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n sortData={sortData}\r\n labelOrder={labelOrder}\r\n showNAColor={showNAColor}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n trackColor={trackColor}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n );\r\n}\r\n\r\ninterface GroupedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function GroupedBarGraph(props: GroupedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix,\r\n prefix,\r\n showValues,\r\n padding,\r\n backgroundColor,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n labelOrder,\r\n minHeight,\r\n theme,\r\n sortParameter,\r\n sortData,\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n precision,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n return (\r\n <GroupedBarGraphEl\r\n orientation={orientation}\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n truncateBy={truncateBy}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n padding={padding}\r\n backgroundColor={backgroundColor}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n theme={theme}\r\n maxBarThickness={maxBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n );\r\n}\r\n\r\ninterface StackedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function StackedBarGraph(props: StackedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n suffix,\r\n prefix,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n tooltip,\r\n onSeriesMouseOver,\r\n relativeHeight,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n labelOrder,\r\n minHeight,\r\n maxBarThickness,\r\n sortParameter,\r\n sortData,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n precision,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n return (\r\n <StackedBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={suffix}\r\n prefix={prefix}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n relativeHeight={relativeHeight}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n );\r\n}\r\n"],"names":["HorizontalGraph","props","$","_c","data","leftMargin","t0","rightMargin","t1","topMargin","t2","bottomMargin","t3","barColors","barPadding","showTicks","truncateBy","width","height","suffix","prefix","showValues","showLabels","tooltip","onSeriesMouseOver","refValues","maxValue","minValue","onSeriesMouseClick","selectedColor","rtl","labelOrder","maxBarThickness","resetSelectionOnDoubleClick","detailsOnClick","barAxisTitle","valueColor","noOfTicks","styles","classNames","animate","colorDomain","precision","customLayers","naLabel","hideAxisLine","undefined","svgRef","useRef","t4","amount","once","isInView","useInView","t5","t6","top","bottom","left","right","margin","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","t7","idSet","Set","dataWithIdWithoutMissingIds","map","d","i","id","label","add","missingIds","filter","id_0","has","t8","size","length","id_1","Array","fill","dataWithId","_temp","barOrder","T0","T1","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t9","graphObjectValues","xAxis","gridLines","labels","title","yAxis","axis","x","scaleLinear","domain","range","nice","y","scaleBand","Math","min","paddingInner","subBarScale","_temp2","bandwidth","xTicks","ticks","motion","svg","jsx","XTicksAndGridLines","_temp3","_temp4","d_3","t21","t22","t23","t24","AxisTitle","_temp5","_temp6","AnimatePresence","d_6","checkIfNullOrUndefined","jsxs","initial","whileInView","transition","duration","opacity","el","j","event","sizeIndex","clientY","clientX","event_0","isEqual","textAnchor","cn","numberFormattingFunction","YAxesLabels","substring","t25","t26","t27","t28","Axis","el_0","i_1","RefLineX","text","color","value","_temp7","_temp8","Tooltip","modal","DetailsModal","Fragment","d_8","layer","d_7","position","d_5","d_4","d_2","d_1","_d","i_0","d_0","VerticalGraph","_temp9","_temp0","yTicks","dx","dy","YTicksAndGridLines","_temp1","_temp10","t29","t30","t31","_temp11","_temp12","abs","XAxesLabels","RefLineY","_temp13","_temp14","GroupedBarGraphEl","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","showColorScale","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","minHeight","theme","ariaLabel","filterNA","timeline","sortParameter","sortData","orientation","Colors","light","categoricalColors","enabled","autoplay","showOnlyActiveDate","Comp","svgWidth","setSvgWidth","svgHeight","setSvgHeight","play","setPlay","dates","dateFormat","parse","date","Date","getTime","sort","uniqDatesSorted","index","setIndex","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","speed","interval","setInterval","clearInterval","t32","getSliderMarks","markObj","t33","graphContainer","t34","t35","description","GraphHeader","t36","Pause","Play","SliderUI","nextValue","indexOf","nextValue_0","t37","colorLegend","ColorLegendWithMouseOver","t38","EmptyState","t39","orderBy","ensureCompleteDataForStackedBarChart","format","every","d_9","d_10","d_12","max","_temp16","_temp18","t40","GraphArea","t41","t42","footnote","source","GraphFooter","t43","GraphContainer","d_15","_temp17","l_1","l","d_16","_temp15","l_2","d_13","d_14","l_0","item_1","item","item_0","sum","a","b","barColor","highlightedDataPoints","minBarThickness","dimmedOpacity","trackColor","gray","el_3","el_2","el_1","_i","_temp19","_temp20","_temp21","_temp22","SimpleBarGraphEl","showNAColor","maxNumberOfBars","uniqBy","ensureCompleteDataForBarChart","Infinity","_d_0","primaryColors","t44","t45","d_18","d_17","d_11","element","k","getTextColorBasedOnBgColor","element_0","k_0","element_1","k_1","element_2","k_2","element_3","k_3","element_4","k_4","element_5","k_5","element_6","k_6","element_7","StackedBarGraphEl","_d_1","i_2","SimpleBarGraph","GroupedBarGraph","StackedBarGraph"],"mappings":"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"}
1
+ {"version":3,"file":"BarGraph.cjs","sources":["../src/Components/Graphs/BarGraph/GroupedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/GroupedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/index.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n width: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n minValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n suffix,\r\n prefix,\r\n showValues,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphHeight, maxBarThickness * barOrder.length) : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, y.bandwidth()])\r\n .paddingInner(0.1);\r\n const xTicks = x.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {!checkIfNullOrUndefined(el) ? (\r\n <motion.rect\r\n y={subBarScale(`${j}`)}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: !checkIfNullOrUndefined(el)\r\n ? (el as number) >= 0\r\n ? x(el as number) - x(0)\r\n : x(0) - x(el as number)\r\n : 0,\r\n x: (el as number) >= 0 ? x(0) : x(el as number),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={subBarScale.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\r\n style={{\r\n textAnchor: el ? (el < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dx={el ? (el < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: { x: x(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n x: x(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={0}\r\n x={0 - margin.left}\r\n width={x(minValue < 0 ? 0 : minValue) + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphWidth, maxBarThickness * barOrder.length) : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, x.bandwidth()])\r\n .paddingInner(0.1);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )\r\n : undefined\r\n }\r\n hideAxisLine={hideAxisLine}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={subBarScale(`${j}`)}\r\n width={subBarScale.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n y: y(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n height: !checkIfNullOrUndefined(el)\r\n ? Math.abs(y(el as number) - y(0))\r\n : 0,\r\n y: !checkIfNullOrUndefined(el)\r\n ? (el as number) > 0\r\n ? y(el as number)\r\n : y(0)\r\n : y(0),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy={el ? (el >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: { y: y(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n y: y(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport orderBy from 'lodash.orderby';\r\nimport sum from 'lodash.sum';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels?: boolean;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n showColorScale?: boolean;\r\n minHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n minValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n labelOrder?: string[];\r\n language?: Languages;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n ariaLabel?: string;\r\n resetSelectionOnDoubleClick?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function GroupedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix = '',\r\n prefix = '',\r\n showValues = true,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortParameter,\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\r\n );\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n )\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n )\r\n : ensureCompleteDataForStackedBarChart(\r\n data,\r\n timeline.dateFormat || 'yyyy',\r\n ).filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n styles={styles}\r\n classNames={classNames}\r\n colorDomain={colorDomain}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n BarGraphDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n barColor: string[];\r\n colorDomain: string[];\r\n suffix: string;\r\n prefix: string;\r\n barPadding: number;\r\n showValues: boolean;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n showLabels: boolean;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n maxValue: number;\r\n minValue: number;\r\n highlightedDataPoints: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n labelOrder?: string[];\r\n rtl: boolean;\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n trackColor?: string;\r\n hideAxisLine: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n highlightedDataPoints,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n rtl,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n {trackColor && (\r\n <motion.rect\r\n height={y.bandwidth()}\r\n variants={{\r\n initial: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n width: d.size >= 0 ? x(d.size) - x(0) : x(0) - x(d.size),\r\n x: d.size >= 0 ? x(0) : x(d.size),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={y.bandwidth()}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(d.id) || 0}\r\n x={(d.size || 0) < 0 ? x(0) : 0 - margin.left}\r\n width={(d.size || 0) < 0 ? width - x(0) : x(0) + margin.left}\r\n height={y.bandwidth()}\r\n alignment={d.size ? (d.size < 0 ? 'left' : 'right') : 'right'}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: d.size ? (d.size < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? ' fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dx={d.size ? (d.size < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: d.size ? x(d.size) : x(0),\r\n opacity: 1,\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(d.size, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n colorDomain,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, _i) =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n {trackColor && (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n x: x(`${d.id}`),\r\n y: y(0),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n height: d.size ? Math.abs(y(d.size) - y(0)) : 0,\r\n y: d.size ? (d.size > 0 ? y(d.size) : y(0)) : y(0),\r\n x: x(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={(d.size || 0) < 0 ? 0 : y(0) + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={(d.size || 0) < 0 ? y(0) - 5 : margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment={(d.size || 0) < 0 ? 'bottom' : 'top'}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? 'fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dy={d.size ? (d.size >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(0),\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(d.size || 0),\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(d.size, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n BarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForBarChart } from '@/Utils/ensureCompleteData';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n colors?: string | string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n minHeight?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showValues?: boolean;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain?: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n showLabels?: boolean;\r\n showColorScale?: boolean;\r\n maxValue?: number;\r\n minValue?: number;\r\n trackColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n highlightedDataPoints?: (string | number)[];\r\n dimmedOpacity?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n sortData?: 'asc' | 'desc';\r\n language?: Languages;\r\n showNAColor?: boolean;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\r\n resetSelectionOnDoubleClick?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function SimpleBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n barPadding = 0.25,\r\n showValues = true,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n highlightedDataPoints = [],\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale = true,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n sortData,\r\n labelOrder,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n orientation = 'vertical',\r\n trackColor,\r\n hideAxisLine = false,\r\n } = props;\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\r\n );\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center pb-4' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as (string | number)[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortData\r\n ? orderBy(\r\n ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)),\r\n [\r\n d =>\r\n d.size === undefined\r\n ? sortData === 'asc'\r\n ? (orientation === 'horizontal' ? 1 : -1) * Infinity\r\n : (orientation === 'horizontal' ? -1 : 1) * Infinity\r\n : d.size,\r\n ],\r\n [sortData],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColor={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n selectedColor={selectedColor}\r\n trackColor={trackColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n barPadding={barPadding}\r\n showValues={showValues}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport sum from 'lodash.sum';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels: boolean;\r\n bottomMargin?: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n truncateBy,\r\n width,\r\n height,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showLabels,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([0, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: 0, y: y(`${d.id}`) },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {el ? (\r\n <motion.rect\r\n key={j}\r\n y={0}\r\n style={{ fill: barColors[j] }}\r\n height={y.bandwidth()}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: x(el || 0),\r\n x: x(\r\n j === 0 ? 0 : sum(d.size.filter((element, k) => k < j && element)),\r\n ),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={y.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n dy='0.33em'\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n x:\r\n x(\r\n j === 0\r\n ? 0\r\n : sum(d.size.filter((element, k) => k < j && element)),\r\n ) +\r\n x(el || 0) / 2,\r\n opacity:\r\n el &&\r\n x(el) /\r\n numberFormattingFunction(el, naLabel, precision, prefix, suffix)\r\n .length >\r\n 12\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={0}\r\n x={0 - margin.left}\r\n width={0 + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n className={cn(\r\n 'graph-value graph-value-total text-sm',\r\n !valueColor ? ' fill-primary-gray-700 dark:fill-primary-gray-300' : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n textAnchor: 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n y={y.bandwidth() / 2}\r\n dx={5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n },\r\n whileInView: {\r\n x: x(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(0)}\r\n x2={x(0)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n barPadding,\r\n showLabels,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([0, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(0)}\r\n y2={y(0)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(0, naLabel, precision, prefix, suffix)\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(0),\r\n dx: 0,\r\n dy: -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: x(`${d.id}`), y: 0 },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n transition={{ duration: animate.duration }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={0}\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n fill: barColors[j],\r\n y: y(0),\r\n },\r\n whileInView: {\r\n height: Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ),\r\n y: y(sum(d.size.filter((element, k) => k <= j && element))),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={x.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n y:\r\n y(sum(d.size.filter((element, k) => k <= j && element))) +\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) /\r\n 2,\r\n opacity:\r\n el &&\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) > 20\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n x={x.bandwidth() / 2}\r\n dy={-10}\r\n className={cn(\r\n 'graph-value graph-value-total',\r\n !valueColor\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n : 'text-sm',\r\n classNames?.graphObjectValues,\r\n )}\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n ...(valueColor && { fill: valueColor }),\r\n },\r\n whileInView: {\r\n y: y(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor && { fill: valueColor }),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n showLabels?: boolean;\r\n relativeHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n language?: Languages;\r\n minHeight?: number;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\r\n resetSelectionOnDoubleClick?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n showColorScale?: boolean;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function StackedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showLabels = true,\r\n relativeHeight,\r\n showValues = true,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n sortParameter,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n showColorScale = true,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\r\n );\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d => sum(d.size.filter(l => !checkIfNullOrUndefined(l))) || 0),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n rtl={language === 'he' || language === 'ar'}\r\n labelOrder={labelOrder}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n colorDomain={colorDomain}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import { GroupedBarGraphEl } from './GroupedBarGraph';\r\nimport { SimpleBarGraphEl } from './SimpleBarGraph';\r\nimport { StackedBarGraphEl } from './StackedBarGraph';\r\n\r\nimport {\r\n ReferenceDataType,\r\n BarGraphDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n GroupedBarGraphDataType,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for bars */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Track color (i.e. the color of the bars background) of the bar chart */\r\n trackColor?: string;\r\n /** Toggles if data point which are undefined or has value null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function SimpleBarGraph(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n suffix,\r\n prefix,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n sortData,\r\n labelOrder,\r\n showNAColor,\r\n minHeight,\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n timeline,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine = false,\r\n } = props;\r\n return (\r\n <SimpleBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={suffix}\r\n prefix={prefix}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n showColorScale={showColorScale}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n sortData={sortData}\r\n labelOrder={labelOrder}\r\n showNAColor={showNAColor}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n trackColor={trackColor}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n );\r\n}\r\n\r\ninterface GroupedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function GroupedBarGraph(props: GroupedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix,\r\n prefix,\r\n showValues,\r\n padding,\r\n backgroundColor,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n labelOrder,\r\n minHeight,\r\n theme,\r\n sortParameter,\r\n sortData,\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n precision,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n return (\r\n <GroupedBarGraphEl\r\n orientation={orientation}\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n truncateBy={truncateBy}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n padding={padding}\r\n backgroundColor={backgroundColor}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n theme={theme}\r\n maxBarThickness={maxBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n );\r\n}\r\n\r\ninterface StackedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function StackedBarGraph(props: StackedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n suffix,\r\n prefix,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n tooltip,\r\n onSeriesMouseOver,\r\n relativeHeight,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n labelOrder,\r\n minHeight,\r\n maxBarThickness,\r\n sortParameter,\r\n sortData,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n precision,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n return (\r\n <StackedBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={suffix}\r\n prefix={prefix}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n relativeHeight={relativeHeight}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n );\r\n}\r\n"],"names":["HorizontalGraph","props","$","_c","data","leftMargin","t0","rightMargin","t1","topMargin","t2","bottomMargin","t3","barColors","barPadding","showTicks","truncateBy","width","height","suffix","prefix","showValues","showLabels","tooltip","onSeriesMouseOver","refValues","maxValue","minValue","onSeriesMouseClick","selectedColor","rtl","labelOrder","maxBarThickness","resetSelectionOnDoubleClick","detailsOnClick","barAxisTitle","valueColor","noOfTicks","styles","classNames","animate","colorDomain","precision","customLayers","naLabel","hideAxisLine","undefined","svgRef","useRef","t4","amount","once","isInView","useInView","t5","t6","top","bottom","left","right","margin","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","t7","idSet","Set","dataWithIdWithoutMissingIds","map","d","i","id","label","add","missingIds","filter","id_0","has","t8","size","length","id_1","Array","fill","dataWithId","_temp","barOrder","T0","T1","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t9","graphObjectValues","xAxis","gridLines","labels","title","yAxis","axis","x","scaleLinear","domain","range","nice","y","scaleBand","Math","min","paddingInner","subBarScale","_temp2","bandwidth","xTicks","ticks","motion","svg","jsx","XTicksAndGridLines","_temp3","_temp4","d_3","t21","t22","t23","t24","AxisTitle","_temp5","_temp6","AnimatePresence","d_6","checkIfNullOrUndefined","jsxs","initial","whileInView","transition","duration","opacity","el","j","event","sizeIndex","clientY","clientX","event_0","isEqual","textAnchor","cn","numberFormattingFunction","YAxesLabels","substring","t25","t26","t27","t28","Axis","el_0","i_1","RefLineX","text","color","value","_temp7","_temp8","Tooltip","modal","DetailsModal","Fragment","d_8","layer","d_7","position","d_5","d_4","d_2","d_1","_d","i_0","d_0","VerticalGraph","_temp9","_temp0","yTicks","dx","dy","YTicksAndGridLines","_temp1","_temp10","t29","t30","t31","_temp11","_temp12","abs","XAxesLabels","RefLineY","_temp13","_temp14","GroupedBarGraphEl","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","showColorScale","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","minHeight","theme","ariaLabel","filterNA","timeline","sortParameter","sortData","orientation","Colors","light","categoricalColors","enabled","autoplay","showOnlyActiveDate","Comp","svgWidth","setSvgWidth","svgHeight","setSvgHeight","play","setPlay","dates","dateFormat","parse","date","Date","getTime","sort","uniqDatesSorted","index","setIndex","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","speed","interval","setInterval","clearInterval","t32","getSliderMarks","markObj","t33","graphContainer","t34","t35","description","GraphHeader","t36","Pause","Play","SliderUI","nextValue","indexOf","nextValue_0","t37","colorLegend","ColorLegendWithMouseOver","t38","EmptyState","t39","orderBy","ensureCompleteDataForStackedBarChart","format","every","d_9","d_10","d_11","d_12","max","_temp16","_temp18","t40","GraphArea","t41","t42","footnote","source","GraphFooter","t43","GraphContainer","d_15","_temp17","l_1","l","d_16","_temp15","l_2","d_13","d_14","l_0","item_1","item","item_0","sum","a","b","barColor","highlightedDataPoints","minBarThickness","dimmedOpacity","trackColor","gray","el_3","el_2","el_1","_i","_temp19","_temp20","_temp21","_temp22","SimpleBarGraphEl","showNAColor","maxNumberOfBars","uniqBy","ensureCompleteDataForBarChart","Infinity","_d_0","primaryColors","t44","t45","d_18","d_17","element","k","getTextColorBasedOnBgColor","element_0","k_0","element_1","k_1","element_2","k_2","element_3","k_3","element_4","k_4","element_5","k_5","element_6","k_6","element_7","StackedBarGraphEl","_d_1","i_2","SimpleBarGraph","GroupedBarGraph","StackedBarGraph"],"mappings":"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"}