@undp/data-viz 2.4.1 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.d.ts +11 -9
  4. package/dist/AreaChart.js +320 -322
  5. package/dist/AreaChart.js.map +1 -1
  6. package/dist/BarGraph.cjs +1 -1
  7. package/dist/BarGraph.cjs.map +1 -1
  8. package/dist/BarGraph.d.ts +15 -25
  9. package/dist/BarGraph.js +1694 -1694
  10. package/dist/BarGraph.js.map +1 -1
  11. package/dist/BasicStatCard.cjs +1 -1
  12. package/dist/BasicStatCard.cjs.map +1 -1
  13. package/dist/BasicStatCard.d.ts +13 -9
  14. package/dist/BasicStatCard.js +79 -81
  15. package/dist/BasicStatCard.js.map +1 -1
  16. package/dist/BeeSwarmChart.cjs +1 -1
  17. package/dist/BeeSwarmChart.cjs.map +1 -1
  18. package/dist/BeeSwarmChart.d.ts +11 -9
  19. package/dist/BeeSwarmChart.js +335 -336
  20. package/dist/BeeSwarmChart.js.map +1 -1
  21. package/dist/BiVariateChoroplethMap.cjs +1 -1
  22. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  23. package/dist/BiVariateChoroplethMap.d.ts +13 -3
  24. package/dist/BiVariateChoroplethMap.js +309 -304
  25. package/dist/BiVariateChoroplethMap.js.map +1 -1
  26. package/dist/BulletChart.cjs +1 -1
  27. package/dist/BulletChart.cjs.map +1 -1
  28. package/dist/BulletChart.d.ts +11 -5
  29. package/dist/BulletChart.js +560 -559
  30. package/dist/BulletChart.js.map +1 -1
  31. package/dist/ButterflyChart.cjs +1 -1
  32. package/dist/ButterflyChart.cjs.map +1 -1
  33. package/dist/ButterflyChart.d.ts +11 -9
  34. package/dist/ButterflyChart.js +348 -350
  35. package/dist/ButterflyChart.js.map +1 -1
  36. package/dist/ChoroplethMap.cjs +1 -1
  37. package/dist/ChoroplethMap.cjs.map +1 -1
  38. package/dist/ChoroplethMap.d.ts +11 -3
  39. package/dist/ChoroplethMap.js +314 -311
  40. package/dist/ChoroplethMap.js.map +1 -1
  41. package/dist/CirclePackingGraph.cjs +1 -1
  42. package/dist/CirclePackingGraph.d.ts +11 -9
  43. package/dist/CirclePackingGraph.js +1 -1
  44. package/dist/DataCards.cjs +1 -1
  45. package/dist/DataCards.d.ts +1 -1
  46. package/dist/DataCards.js +1 -1
  47. package/dist/DataTable.cjs +1 -1
  48. package/dist/DataTable.cjs.map +1 -1
  49. package/dist/DataTable.d.ts +4 -5
  50. package/dist/DataTable.js +114 -116
  51. package/dist/DataTable.js.map +1 -1
  52. package/dist/{DetailsModal-jmmKRMRM.cjs → DetailsModal-Du8Fr1QD.cjs} +2 -2
  53. package/dist/{DetailsModal-jmmKRMRM.cjs.map → DetailsModal-Du8Fr1QD.cjs.map} +1 -1
  54. package/dist/{DetailsModal-B2XBWR7w.js → DetailsModal-GqEbGHY2.js} +2 -2
  55. package/dist/{DetailsModal-B2XBWR7w.js.map → DetailsModal-GqEbGHY2.js.map} +1 -1
  56. package/dist/DifferenceLineChart.cjs +1 -1
  57. package/dist/DifferenceLineChart.cjs.map +1 -1
  58. package/dist/DifferenceLineChart.d.ts +11 -9
  59. package/dist/DifferenceLineChart.js +502 -504
  60. package/dist/DifferenceLineChart.js.map +1 -1
  61. package/dist/DonutChart.cjs +1 -1
  62. package/dist/DonutChart.cjs.map +1 -1
  63. package/dist/DonutChart.d.ts +14 -9
  64. package/dist/DonutChart.js +174 -179
  65. package/dist/DonutChart.js.map +1 -1
  66. package/dist/DotDensityMap.cjs +1 -1
  67. package/dist/DotDensityMap.cjs.map +1 -1
  68. package/dist/DotDensityMap.d.ts +1 -1
  69. package/dist/DotDensityMap.js +270 -267
  70. package/dist/DotDensityMap.js.map +1 -1
  71. package/dist/DualAxisLineChart.cjs +1 -1
  72. package/dist/DualAxisLineChart.cjs.map +1 -1
  73. package/dist/DualAxisLineChart.d.ts +13 -9
  74. package/dist/DualAxisLineChart.js +341 -351
  75. package/dist/DualAxisLineChart.js.map +1 -1
  76. package/dist/DumbbellChart.cjs +1 -1
  77. package/dist/DumbbellChart.cjs.map +1 -1
  78. package/dist/DumbbellChart.d.ts +11 -9
  79. package/dist/DumbbellChart.js +592 -593
  80. package/dist/DumbbellChart.js.map +1 -1
  81. package/dist/GeoHubCompareMaps.cjs +1 -1
  82. package/dist/GeoHubCompareMaps.d.ts +1 -1
  83. package/dist/GeoHubCompareMaps.js +1 -1
  84. package/dist/GeoHubMap.cjs +1 -1
  85. package/dist/GeoHubMap.d.ts +1 -1
  86. package/dist/GeoHubMap.js +1 -1
  87. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  88. package/dist/GeoHubMapWithLayerSelection.d.ts +1 -1
  89. package/dist/GeoHubMapWithLayerSelection.js +1 -1
  90. package/dist/GraphEl-BgkDbq50.cjs +2 -0
  91. package/dist/GraphEl-BgkDbq50.cjs.map +1 -0
  92. package/dist/GraphEl-Ch0uAeZw.js +1830 -0
  93. package/dist/GraphEl-Ch0uAeZw.js.map +1 -0
  94. package/dist/GriddedGraphs.cjs +1 -1
  95. package/dist/GriddedGraphs.d.ts +29 -16
  96. package/dist/GriddedGraphs.js +1 -1
  97. package/dist/GriddedGraphsFromConfig.d.ts +29 -16
  98. package/dist/HeatMap.cjs +1 -1
  99. package/dist/HeatMap.cjs.map +1 -1
  100. package/dist/HeatMap.d.ts +11 -9
  101. package/dist/HeatMap.js +203 -205
  102. package/dist/HeatMap.js.map +1 -1
  103. package/dist/Histogram.cjs +1 -1
  104. package/dist/Histogram.cjs.map +1 -1
  105. package/dist/Histogram.d.ts +11 -5
  106. package/dist/Histogram.js +88 -89
  107. package/dist/Histogram.js.map +1 -1
  108. package/dist/HybridMap.cjs +1 -1
  109. package/dist/HybridMap.cjs.map +1 -1
  110. package/dist/HybridMap.d.ts +11 -3
  111. package/dist/HybridMap.js +339 -336
  112. package/dist/HybridMap.js.map +1 -1
  113. package/dist/ImageDownloadButton.cjs +1 -1
  114. package/dist/ImageDownloadButton.js +1 -1
  115. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  116. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  117. package/dist/LineChartWithConfidenceInterval.d.ts +11 -9
  118. package/dist/LineChartWithConfidenceInterval.js +393 -395
  119. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  120. package/dist/LinearColorLegend.cjs +1 -1
  121. package/dist/LinearColorLegend.js +1 -1
  122. package/dist/MultiGraphDashboard.d.ts +29 -16
  123. package/dist/MultiGraphDashboardFromConfig.d.ts +29 -16
  124. package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -1
  125. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -1
  126. package/dist/MultiLineAltChart.cjs +1 -1
  127. package/dist/MultiLineAltChart.cjs.map +1 -1
  128. package/dist/MultiLineAltChart.d.ts +11 -9
  129. package/dist/MultiLineAltChart.js +411 -413
  130. package/dist/MultiLineAltChart.js.map +1 -1
  131. package/dist/MultiLineChart.cjs +1 -1
  132. package/dist/MultiLineChart.cjs.map +1 -1
  133. package/dist/MultiLineChart.d.ts +11 -9
  134. package/dist/MultiLineChart.js +438 -440
  135. package/dist/MultiLineChart.js.map +1 -1
  136. package/dist/ParetoChart.cjs +1 -1
  137. package/dist/ParetoChart.cjs.map +1 -1
  138. package/dist/ParetoChart.d.ts +13 -13
  139. package/dist/ParetoChart.js +347 -355
  140. package/dist/ParetoChart.js.map +1 -1
  141. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +29 -16
  142. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +29 -16
  143. package/dist/PerformanceIntensiveScrollStory.d.ts +29 -16
  144. package/dist/RadarChart.cjs +1 -1
  145. package/dist/RadarChart.cjs.map +1 -1
  146. package/dist/RadarChart.d.ts +11 -5
  147. package/dist/RadarChart.js +213 -213
  148. package/dist/RadarChart.js.map +1 -1
  149. package/dist/SankeyChart.cjs +1 -1
  150. package/dist/SankeyChart.cjs.map +1 -1
  151. package/dist/SankeyChart.d.ts +11 -9
  152. package/dist/SankeyChart.js +448 -450
  153. package/dist/SankeyChart.js.map +1 -1
  154. package/dist/ScatterPlot.cjs +1 -1
  155. package/dist/ScatterPlot.cjs.map +1 -1
  156. package/dist/ScatterPlot.d.ts +15 -13
  157. package/dist/ScatterPlot.js +477 -483
  158. package/dist/ScatterPlot.js.map +1 -1
  159. package/dist/ScrollStory.d.ts +29 -16
  160. package/dist/SimpleLineChart.cjs +1 -1
  161. package/dist/SimpleLineChart.cjs.map +1 -1
  162. package/dist/SimpleLineChart.d.ts +11 -9
  163. package/dist/SimpleLineChart.js +362 -364
  164. package/dist/SimpleLineChart.js.map +1 -1
  165. package/dist/SingleGraphDashboard.cjs +1 -1
  166. package/dist/SingleGraphDashboard.d.ts +29 -16
  167. package/dist/SingleGraphDashboard.js +1 -1
  168. package/dist/SingleGraphDashboardFromConfig.d.ts +29 -16
  169. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +29 -16
  170. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +29 -16
  171. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  172. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  173. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +29 -16
  174. package/dist/SingleGraphDashboardThreeDGraphs.js +40 -39
  175. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  176. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +29 -16
  177. package/dist/SlopeChart.cjs +1 -1
  178. package/dist/SlopeChart.d.ts +1 -1
  179. package/dist/SlopeChart.js +2 -2
  180. package/dist/SparkLine.cjs +1 -1
  181. package/dist/SparkLine.d.ts +1 -1
  182. package/dist/SparkLine.js +1 -1
  183. package/dist/StatCardFromData.cjs +1 -1
  184. package/dist/StatCardFromData.cjs.map +1 -1
  185. package/dist/StatCardFromData.d.ts +11 -9
  186. package/dist/StatCardFromData.js +113 -116
  187. package/dist/StatCardFromData.js.map +1 -1
  188. package/dist/StripChart.cjs +1 -1
  189. package/dist/StripChart.cjs.map +1 -1
  190. package/dist/StripChart.d.ts +11 -9
  191. package/dist/StripChart.js +434 -435
  192. package/dist/StripChart.js.map +1 -1
  193. package/dist/ThreeDGlobe.cjs +1 -1
  194. package/dist/ThreeDGlobe.cjs.map +1 -1
  195. package/dist/ThreeDGlobe.d.ts +11 -3
  196. package/dist/ThreeDGlobe.js +143 -143
  197. package/dist/ThreeDGlobe.js.map +1 -1
  198. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  199. package/dist/ThresholdColorLegendWithMouseOver.js +1 -1
  200. package/dist/{Tooltip-Bj-s__cI.js → Tooltip-3EYDVa3w.js} +2 -2
  201. package/dist/{Tooltip-Bj-s__cI.js.map → Tooltip-3EYDVa3w.js.map} +1 -1
  202. package/dist/{Tooltip-Hr46paWP.cjs → Tooltip-C9F3uYG0.cjs} +2 -2
  203. package/dist/{Tooltip-Hr46paWP.cjs.map → Tooltip-C9F3uYG0.cjs.map} +1 -1
  204. package/dist/TreeMapGraph.cjs +1 -1
  205. package/dist/TreeMapGraph.cjs.map +1 -1
  206. package/dist/TreeMapGraph.d.ts +11 -9
  207. package/dist/TreeMapGraph.js +369 -371
  208. package/dist/TreeMapGraph.js.map +1 -1
  209. package/dist/Types.d.ts +29 -16
  210. package/dist/UnitChart.cjs +1 -1
  211. package/dist/UnitChart.cjs.map +1 -1
  212. package/dist/UnitChart.d.ts +11 -5
  213. package/dist/UnitChart.js +118 -119
  214. package/dist/UnitChart.js.map +1 -1
  215. package/dist/WaterfallChart.cjs +1 -1
  216. package/dist/WaterfallChart.cjs.map +1 -1
  217. package/dist/WaterfallChart.d.ts +11 -9
  218. package/dist/WaterfallChart.js +306 -308
  219. package/dist/WaterfallChart.js.map +1 -1
  220. package/dist/XTicksAndGridLines-B4UhDVyU.cjs +2 -0
  221. package/dist/XTicksAndGridLines-B4UhDVyU.cjs.map +1 -0
  222. package/dist/XTicksAndGridLines-CkYwVshF.js +40 -0
  223. package/dist/XTicksAndGridLines-CkYwVshF.js.map +1 -0
  224. package/dist/YTicksAndGridLines-BbujwxOB.js +40 -0
  225. package/dist/YTicksAndGridLines-BbujwxOB.js.map +1 -0
  226. package/dist/YTicksAndGridLines-sT3zdCs6.cjs +2 -0
  227. package/dist/YTicksAndGridLines-sT3zdCs6.cjs.map +1 -0
  228. package/dist/{imageDownload-Diofs_vY.js → imageDownload-BYsNEtMS.js} +11 -11
  229. package/dist/{imageDownload-Diofs_vY.js.map → imageDownload-BYsNEtMS.js.map} +1 -1
  230. package/dist/{imageDownload-61q6jyJW.cjs → imageDownload-CkMwA7Cw.cjs} +4 -4
  231. package/dist/{imageDownload-61q6jyJW.cjs.map → imageDownload-CkMwA7Cw.cjs.map} +1 -1
  232. package/dist/index-BPyj_6hG.js +375 -0
  233. package/dist/index-BPyj_6hG.js.map +1 -0
  234. package/dist/index-DuLvdHo2.cjs +2 -0
  235. package/dist/index-DuLvdHo2.cjs.map +1 -0
  236. package/dist/index.cjs +1 -1
  237. package/dist/index.d.ts +108 -245
  238. package/dist/index.js +3 -3
  239. package/dist/numberFormattingFunction-BUUV_luR.js +28 -0
  240. package/dist/numberFormattingFunction-BUUV_luR.js.map +1 -0
  241. package/dist/numberFormattingFunction-u2iNHL_c.cjs +2 -0
  242. package/dist/numberFormattingFunction-u2iNHL_c.cjs.map +1 -0
  243. package/dist/{string2HTML-ZoGd08P_.cjs → string2HTML-30nfIm8R.cjs} +2 -2
  244. package/dist/{string2HTML-ZoGd08P_.cjs.map → string2HTML-30nfIm8R.cjs.map} +1 -1
  245. package/dist/{string2HTML-BrFperRM.js → string2HTML-DL-pInUB.js} +2 -2
  246. package/dist/{string2HTML-BrFperRM.js.map → string2HTML-DL-pInUB.js.map} +1 -1
  247. package/dist/style.css +1 -1
  248. package/dist/utils.cjs +1 -1
  249. package/dist/utils.d.ts +1 -1
  250. package/dist/utils.js +2 -2
  251. package/package.json +2 -2
  252. package/dist/GraphEl-B73N4RIA.js +0 -1906
  253. package/dist/GraphEl-B73N4RIA.js.map +0 -1
  254. package/dist/GraphEl-Lt1og0C-.cjs +0 -2
  255. package/dist/GraphEl-Lt1og0C-.cjs.map +0 -1
  256. package/dist/XTicksAndGridLines-C5DuC5oY.cjs +0 -2
  257. package/dist/XTicksAndGridLines-C5DuC5oY.cjs.map +0 -1
  258. package/dist/XTicksAndGridLines-gdbGX2rm.js +0 -39
  259. package/dist/XTicksAndGridLines-gdbGX2rm.js.map +0 -1
  260. package/dist/YTicksAndGridLines-CsNSq9W9.js +0 -39
  261. package/dist/YTicksAndGridLines-CsNSq9W9.js.map +0 -1
  262. package/dist/YTicksAndGridLines-DFjm8RCc.cjs +0 -2
  263. package/dist/YTicksAndGridLines-DFjm8RCc.cjs.map +0 -1
  264. package/dist/index-B0Awa_de.js +0 -377
  265. package/dist/index-B0Awa_de.js.map +0 -1
  266. package/dist/index-CP8cmNzt.cjs +0 -2
  267. package/dist/index-CP8cmNzt.cjs.map +0 -1
  268. package/dist/numberFormattingFunction-Cn9R7CM9.cjs +0 -2
  269. package/dist/numberFormattingFunction-Cn9R7CM9.cjs.map +0 -1
  270. package/dist/numberFormattingFunction-DqMf_v1m.js +0 -28
  271. package/dist/numberFormattingFunction-DqMf_v1m.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WaterfallChart.js","sources":["../src/Components/Graphs/WaterfallChart/Graph.tsx","../src/Components/Graphs/WaterfallChart/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 ReferenceDataType,\r\n StyleObject,\r\n WaterfallChartDataType,\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 { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { 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\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\n\r\ninterface Props {\r\n data: WaterfallChartDataType[];\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 // 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 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 hideAxisLine: boolean;\r\n locale: string;\r\n}\r\nfunction getWaterfallExtent(values: (number | null | undefined)[]) {\r\n let cumulative = 0;\r\n let max = 0;\r\n let min = 0;\r\n\r\n for (const v of values) {\r\n cumulative += v || 0;\r\n if (cumulative > max) max = cumulative;\r\n if (cumulative < min) min = cumulative;\r\n }\r\n\r\n return {\r\n max,\r\n min,\r\n };\r\n}\r\n\r\nexport function Graph(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 detailsOnClick,\r\n barAxisTitle,\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 hideAxisLine,\r\n locale,\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\r\n const { max, min } = getWaterfallExtent(data.map(d => d.size));\r\n\r\n const maxVal = !checkIfNullOrUndefined(maxValue) ? (maxValue as number) : max;\r\n const minVal = !checkIfNullOrUndefined(minValue) ? (minValue as number) : min;\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([minVal, maxVal]).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 let running = 0;\r\n\r\n const waterfallData = dataWithId.map(d => {\r\n const start = running;\r\n running += d.size || 0;\r\n return {\r\n ...d,\r\n start,\r\n end: running,\r\n };\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 <Axis\r\n y1={y(minVal < 0 ? 0 : minVal)}\r\n y2={y(minVal < 0 ? 0 : minVal)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n hideAxisLine={hideAxisLine}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minVal < 0 ? 0 : minVal,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxVal < 0 ? '1em' : -5,\r\n y: y(minVal < 0 ? 0 : minVal),\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 locale={locale}\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 {waterfallData.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\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\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)) {\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 {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(d.start),\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: Math.abs(y(d.start) - y(d.end)),\r\n y: y(Math.max(d.start, d.end)),\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(d.start),\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={y(0) + 5}\r\n x={x(`${d.id}`) as number}\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 && Math.abs(y(d.start) - y(d.end)) > 16 ? (\r\n <motion.text\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 x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: (y(d.start) + y(d.end)) / 2,\r\n opacity: 0,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? getTextColorBasedOnBgColor(barColor[0])\r\n : !d.color\r\n ? getTextColorBasedOnBgColor(Colors.gray)\r\n : getTextColorBasedOnBgColor(\r\n barColor[colorDomain.indexOf(d.color)],\r\n ),\r\n },\r\n whileInView: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: (y(d.start) + y(d.end)) / 2,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? getTextColorBasedOnBgColor(barColor[0])\r\n : !d.color\r\n ? getTextColorBasedOnBgColor(Colors.gray)\r\n : getTextColorBasedOnBgColor(\r\n barColor[colorDomain.indexOf(d.color)],\r\n ),\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(\r\n d.size ? Math.abs(d.size) : d.size,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\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 } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphContainer, GraphArea } from '@/Components/Elements/GraphContainer';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n ReferenceDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n WaterfallChartDataType,\r\n} from '@/Types';\r\nimport { checkIfNullOrUndefined } from '@/Utils';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: WaterfallChartDataType[];\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 /** 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 /** 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 /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\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 /** 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\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 WaterfallChart(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 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 detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\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 naLabel = 'NA',\r\n hideAxisLine = false,\r\n locale = 'en',\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\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 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 {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.filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)).length === 0 && (\r\n <EmptyState />\r\n )}\r\n {svgWidth &&\r\n svgHeight &&\r\n data.filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)).length > 0 ? (\r\n <Graph\r\n hideAxisLine={hideAxisLine}\r\n data={data\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))}\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 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={maxValue}\r\n minValue={minValue}\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 detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\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 locale={locale}\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"],"names":["getWaterfallExtent","values","cumulative","max","min","v","Graph","props","$","_c","leftMargin","t0","rightMargin","t1","topMargin","t2","bottomMargin","t3","data","width","height","barColor","suffix","prefix","barPadding","showLabels","showValues","showTicks","colorDomain","truncateBy","tooltip","onSeriesMouseOver","refValues","selectedColor","maxValue","minValue","highlightedDataPoints","onSeriesMouseClick","labelOrder","maxBarThickness","minBarThickness","detailsOnClick","barAxisTitle","noOfTicks","styles","classNames","dimmedOpacity","animate","precision","customLayers","naLabel","hideAxisLine","locale","undefined","svgRef","useRef","t4","amount","once","isInView","useInView","t5","t6","top","bottom","left","right","margin","map","_temp","maxVal","checkIfNullOrUndefined","minVal","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","t7","idSet","Set","dataWithIdWithoutMissingIds","d_0","i","id","d","label","add","missingIds","filter","id_0","has","_temp2","dataWithId","t8","_temp3","barOrder","y","scaleLinear","domain","range","nice","x","scaleBand","Math","length","paddingInner","yTicks","ticks","running","waterfallData","d_2","start","size","end","t9","xAxis","axis","t10","yAxis","labels","t11","t12","t13","t14","t15","t16","t17","title","t18","t19","AxisTitle","t20","_temp6","_temp7","T0","AnimatePresence","t21","d_8","_i","jsxs","motion","initial","opacity","color","indexOf","whileInView","transition","duration","event","clientY","clientX","isEqual","event_0","jsx","bandwidth","fill","_temp8","Colors","gray","abs","_temp9","XAxesLabels","substring","textAnchor","graphObjectValues","cn","_temp0","getTextColorBasedOnBgColor","_temp1","numberFormattingFunction","t22","Fragment","el_3","i_0","RefLineY","el","text","value","t23","t24","_temp10","_temp11","t25","Tooltip","t26","modal","DetailsModal","Axis","dx","dy","YTicksAndGridLines","_temp4","_temp5","d_5","gridLines","d_10","layer","d_9","position","el_2","el_1","el_0","d_7","d_6","d_4","d_3","d_1","id_1","WaterfallChart","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","showColorScale","graphID","graphDownload","dataDownload","language","showNAColor","minHeight","theme","maxNumberOfBars","ariaLabel","filterNA","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","t27","graphContainer","t28","t29","description","GraphHeader","t30","colorLegend","ColorLegendWithMouseOver","categoricalColors","uniqBy","t31","EmptyState","t32","_d","primaryColors","t33","GraphArea","t34","footnote","source","GraphFooter","t35","GraphContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,SAASA,GAAmBC,GAAuC;AACjE,MAAIC,IAAa,GACbC,IAAM,GACNC,IAAM;AAEV,aAAWC,KAAKJ;AACdC,IAAAA,KAAcG,KAAK,GACfH,IAAaC,MAAKA,IAAMD,IACxBA,IAAaE,MAAKA,IAAMF;AAG9B,SAAO;AAAA,IACLC,KAAAA;AAAAA,IACAC,KAAAA;AAAAA,EAAAA;AAEJ;AAEO,SAAAE,GAAAC,GAAA;AAAA,QAAAC,IAAAC,GAAAA,EAAA,EAAA,GACL;AAAA,IAAAC,YAAAC;AAAAA,IAAAC,aAAAC;AAAAA,IAAAC,WAAAC;AAAAA,IAAAC,cAAAC;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,mBAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,uBAAAA;AAAAA,IAAAC,oBAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,QAAAA;AAAAA,EAAAA,IAwCI7C,GAvCFG,IAAAC,MAAA0C,SAAA,KAAA1C,GACAC,KAAAC,MAAAwC,SAAA,KAAAxC,GACAC,IAAAC,MAAAsC,SAAA,KAAAtC,GACAC,KAAAC,OAAAoC,SAAA,KAAApC,IAqCFqC,KAAeC,GAAO,IAAI;AAAE,MAAAC;AAAA,EAAAhD,EAAA,CAAA,MAAAuC,EAAAU,UAAAjD,EAAA,CAAA,MAAAuC,EAAAW,QACOF,IAAA;AAAA,IAAAE,MAC3BX,EAAOW;AAAAA,IAAKD,QACVV,EAAOU;AAAAA,EAAAA,GAChBjD,EAAA,CAAA,IAAAuC,EAAAU,QAAAjD,EAAA,CAAA,IAAAuC,EAAAW,MAAAlD,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAHD,QAAAmD,IAAiBC,GAAUN,IAAQE,CAGlC,GAIOK,KAAAnB,KAAehC,IAAa,KAA5BA;AAA2C,MAAAoD;AAAA,EAAAtD,EAAA,CAAA,MAAAQ,MAAAR,EAAA,CAAA,MAAAI,MAAAJ,EAAA,CAAA,MAAAqD,MAAArD,SAAAM,KAHpCgD,IAAA;AAAA,IAAAC,KACRjD;AAAAA,IAASkD,QACNhD;AAAAA,IAAYiD,MACdJ;AAAAA,IAA2CK,OAC1CtD;AAAAA,EAAAA,GACRJ,OAAAQ,IAAAR,OAAAI,IAAAJ,OAAAqD,IAAArD,OAAAM,GAAAN,OAAAsD,KAAAA,IAAAtD,EAAA,CAAA;AALD,QAAA2D,IAAeL,GAOf;AAAA,IAAA3D,KAAAA;AAAAA,IAAAC,KAAAA;AAAAA,EAAAA,IAAqBJ,GAAmBkB,EAAIkD,IAAKC,EAAW,CAAC,GAE7DC,KAAgBC,GAAuBrC,EAAQ,IAAhC/B,KAAqC+B,IACpDsC,IAAgBD,GAAuBpC,EAAQ,IAAhC/B,KAAqC+B,IAGpD,CAAAsC,GAAAC,EAAA,IAA0CC,GAActB,MAAS,GAEjE,CAAAuB,GAAAC,CAAA,IAA4CF,GAActB,MAAS,GACnE,CAAAyB,GAAAC,EAAA,IAA4BJ,GAA6BtB,MAAS,GAClE,CAAA2B,GAAAC,EAAA,IAA4BN,GAA6BtB,MAAS,GAClE6B,IAAmB/D,KAAQgD,EAAMF,OAAQE,EAAMD,OAC/CiB,KAAoB/D,IAAS+C,EAAMJ,MAAOI,EAAMH;AAAQ,MAAAoB;AAAA,MAAA5E,EAAA,CAAA,MAAAU,KAAAV,SAAA8B,GAAA;AAGtD,UAAA+C,wBAAkBC,IAAAA,GAElBC,IAAoCrE,EAAIkD,IAAK,CAAAoB,GAAAC,OAAA;AAC3C,YAAAC,IAAWpD,IAAA,GAAgBqD,EAACC,KAAM,KAAvB,GAA+BH,EAAC;AAC3CJ,aAAAA,EAAKQ,IAAKH,CAAE,GACL;AAAA,QAAA,GAAKC;AAAAA,QAACD,IAAAA;AAAAA,MAAAA;AAAAA,IAAM,CACpB,GAEDI,IAAmBxD,IAAaA,EAAUyD,OAAQC,CAAAA,MAAM,CAACX,EAAKY,IAAKP,CAAE,CAAM,IAAxD,CAAA;AAEZN,IAAAA,IAAA,CAAA,GACFG,GAA2B,GAC3BO,EAAU1B,IAAK8B,EAKhB,CAAC,GACJ1F,OAAAU,GAAAV,OAAA8B,GAAA9B,QAAA4E;AAAAA,EAAA;AAAAA,IAAAA,IAAA5E,EAAA,EAAA;AAnBH,QAAA2F,IAWEf;AASqB,MAAAgB;AAAA,EAAA5F,EAAA,EAAA,MAAA2F,KAAA3F,UAAA8B,KAGd8D,IAAA9D,KAAc6D,EAAU/B,IAAKiC,EAAc,GAAC7F,QAAA2F,GAAA3F,QAAA8B,GAAA9B,QAAA4F,KAAAA,IAAA5F,EAAA,EAAA;AADrD,QAAA8F,IACEF,GAGFG,IAAUC,GAAAA,EAAaC,OAAQ,CAACjC,GAAQF,EAAM,CAAC,EAACoC,MAAO,CAACvB,IAAa,CAAC,CAAC,EAACwB,KAAAA,GAExEC,IAAUC,GAAAA,EAAWJ,OACXH,CAAQ,EAACI,MACV,CACL,GACAlE,KACIsE,KAAI3G,IAAK+E,GAAY1C,KAAkB8D,EAAQS,MAGpC,IAFXxE,KACEuE,KAAI1G,IAAK8E,GAAY3C,KAAkB+D,EAAQS,MACtC,IAFX7B,CAEY,CACjB,EAAC8B,aACYxF,EAAU,GAC1ByF,KAAeV,EAACW,MAAOvE,EAAS;AAChC,MAAAwE,IAAc;AAEd,QAAAC,IAAsBjB,EAAU/B,IAAKiD,CAAAA,MAAA;AACnC,UAAAC,IAAcH;AACdA,WAAAA,IAAAA,KAAWxB,EAAC4B,QAAD,IACJ;AAAA,MAAA,GACF5B;AAAAA,MAAC2B,OAAAA;AAAAA,MAAAE,KAECL;AAAAA,IAAAA;AAAAA,EACN,CACF,GAoCiBM,KAAA5E,GAAU6E,OAAaC,MACtBC,IAAA/E,GAAUgF,OAAeC;AAAA,MAAAC;AAAA,EAAAvH,EAAA,EAAA,MAAAoH,KAAApH,UAAAiH,MAFtBM,IAAA;AAAA,IAAAJ,MACJF;AAAAA,IAAuB7B,OACtBgC;AAAAA,EAAAA,GACRpH,QAAAoH,GAAApH,QAAAiH,IAAAjH,QAAAuH,KAAAA,IAAAvH,EAAA,EAAA;AACe,QAAAwH,KAAApF,GAAM8E,OAAaC,MAASM,KAAArF,GAAMiF,OAAeC;AAAA,MAAAI;AAAA,EAAA1H,EAAA,EAAA,MAAAwH,MAAAxH,UAAAyH,MAAzDC,IAAA;AAAA,IAAAP,MAAQK;AAAAA,IAAmBpC,OAASqC;AAAAA,EAAAA,GAAuBzH,QAAAwH,IAAAxH,QAAAyH,IAAAzH,QAAA0H,KAAAA,IAAA1H,EAAA,EAAA;AA0BhE,QAAA2H,KAAA,IAAIzH,IAAa,IACjB0H,KAAAjD,KAAc,GACVkD,KAAAzF,GAAMiF,OAAcS,OAChBC,KAAA1F,GAAUgF,OAAcS;AAAA,MAAAE;AAAA,EAAAhI,EAAA,EAAA,MAAAkC,MAAAlC,EAAA,EAAA,MAAA2H,MAAA3H,EAAA,EAAA,MAAA4H,MAAA5H,EAAA,EAAA,MAAA6H,MAAA7H,UAAA+H,MAJrCC,0BAACC,IAAA,EACI,GAAAN,IACA,GAAAC,IACI,OAAAC,IACI,WAAAE,IACL7F,MAAAA,IACN,UAAA,IAAQ,GACRlC,QAAAkC,IAAAlC,QAAA2H,IAAA3H,QAAA4H,IAAA5H,QAAA6H,IAAA7H,QAAA+H,IAAA/H,QAAAgI,KAAAA,IAAAhI,EAAA,EAAA;AAAA,MAAAkI;AAAA,EAAAlI,UAAAyC,KACDyF,KAAAzF,EAAY8C,OAAQ4C,EAA4B,EAACvE,IAAKwE,EAAY,GAACpI,QAAAyC,GAAAzC,QAAAkI,MAAAA,KAAAlI,EAAA,EAAA;AACnE,QAAAqI,IAAAC,IACEC,KAAA3B,EAAahD,IAAK,CAAA4E,GAAAC,MAChB1E,GAAuBqC,EAAEjB,EAACD,EAAG,CAAC,IAA/B,OACEwD,gBAAAA,OAAAC,GAAA,GAAA,EACY,WAAA,yBAEF,SAAA,WACC,SAAAxF,IAAA,gBAAA,WACC,UAAA;AAAA,IAAAyF,SACC;AAAA,MAAAC,SACEpH,IACL0D,EAAC2D,SACCjI,EAASO,EAAW2H,QAAS5D,EAAC2D,KAAM,CAAC,MAAMrH,IAA3C,IADFa,IAKAV,IACEA,EAAqBmH,QAAS5D,EAACC,KAAM,MAAM,KAA3C,OAAA9C,IADF;AAAA,IAAA;AAAA,IAKL0G,aACY;AAAA,MAAAH,SACFpH,IACL0D,EAAC2D,SACCjI,EAASO,EAAW2H,QAAS5D,EAAC2D,KAAM,CAAC,MAAMrH,IAA3C,IADFa,IAKAV,IACEA,EAAqBmH,QAAS5D,EAACC,KAAM,MAAM,KAA3C,OAAA9C,IADF;AAAA,MAIM2G,YACE;AAAA,QAAAC,UAAY3G,EAAO2G;AAAAA,MAAAA;AAAAA,IAAU;AAAA,EAC3C,GAEI,MAAA;AAAA,IAAAL,SAAW;AAAA,IAACI,YAAc;AAAA,MAAAC,UAAY3G,EAAO2G;AAAAA,IAAAA;AAAAA,EAAU,GAC/C,cAAAC,CAAAA,MAAA;AACZjF,IAAAA,GAAiBiB,CAAC,GAClBV,GAAU0E,EAAKC,OAAQ,GACvB7E,GAAU4E,EAAKE,OAAQ,GACvB9H,KAAoB4D,CAAC;AAAA,EAAC,GAEf,SAAA,MAAA;AACP,KAAItD,MAAAI,OACEqH,GAAQlF,GAAgBe,CAAC,KAC3Bd,EAAkBxB,MAAS,GAC3BhB,KAAqBgB,MAAS,MAE9BwB,EAAkBc,CAAC,GACnBtD,KAAqBsD,CAAC;AAAA,EAEzB,GAEU,aAAAoE,CAAAA,MAAA;AACXrF,IAAAA,GAAiBiB,CAAC,GAClBV,GAAU0E,EAAKC,OAAQ,GACvB7E,GAAU4E,EAAKE,OAAQ;AAAA,EAAC,GAEZ,cAAA,MAAA;AACZnF,IAAAA,GAAiBrB,MAAS,GAC1B0B,GAAU1B,MAAS,GACnB4B,GAAU5B,MAAS,GACnBtB,KAAoBsB,MAAS;AAAA,EAAC,GAG/BsC,UAAAA;AAAAA,IAAAA,EAAC4B,OACAyC,gBAAAA,EAAAA,IAAAb,GAAA,MAAA,EACS,OAAAvC,EAACqD,UAAAA,GACA,SAAA,WACC,SAAAtG,IAAA,gBAAA,WACC,UAAA;AAAA,MAAAyF,SACC;AAAA,QAAAhI,QACC;AAAA,QAACwF,GACNA,EAAE,GAAGjB,EAACD,EAAG,EAAE;AAAA,QAACa,GACZA,EAAEZ,EAAC2B,KAAM;AAAA,QAAC4C,MAEXhJ,EAAI6E,OAAQoE,EAAc,EAACpD,WAAY,IACnC1F,OACCsE,EAAC2D,QAEAjI,EAASO,EAAW2H,QAAS5D,EAAC2D,KAAM,CAAC,IADrCc,GAAMC;AAAAA,MAC+B;AAAA,MAC9Cb,aACY;AAAA,QAAApI,QACH0F,KAAIwD,IAAK/D,EAAEZ,EAAC2B,KAAM,IAAIf,EAAEZ,EAAC6B,GAAI,CAAC;AAAA,QAACjB,GACpCA,EAAEO,KAAI3G,IAAKwF,EAAC2B,OAAQ3B,EAAC6B,GAAI,CAAC;AAAA,QAACZ,GAC3BA,EAAE,GAAGjB,EAACD,EAAG,EAAE;AAAA,QAACwE,MAEbhJ,EAAI6E,OAAQwE,EAAc,EAACxD,WAAY,IACnC1F,EAAQ,CAAA,IACPsE,EAAC2D,QAEAjI,EAASO,EAAW2H,QAAS5D,EAAC2D,KAAM,CAAC,IADrCc,GAAMC;AAAAA,QACgCZ,YAClC;AAAA,UAAAC,UAAY3G,EAAO2G;AAAAA,QAAAA;AAAAA,MAAU;AAAA,IAC3C,GAEI,MAAA;AAAA,MAAAtI,QACI;AAAA,MAACmF,GACNA,EAAEZ,EAAC2B,KAAM;AAAA,MAACmC,YACD;AAAA,QAAAC,UAAY3G,EAAO2G;AAAAA,MAAAA;AAAAA,IAAU,GAC1C,IAlCJ;AAAA,IAqCAjI,KACCuI,gBAAAA,EAAAA,IAACQ,IAAA,EAEG,OAAA,GAAG7E,EAACC,KAAM,GAAEmB,SAAUlF,KAAtB,GACO8D,EAACC,KAAM,KADd,GAEO,GAAGD,EAACC,KAAM,GAAE6E,UAAW,GAAG5I,EAAU,CAAC,OAE3C,GAAA0E,EAAE,CAAC,IAAI,GACP,GAAAK,EAAE,GAAGjB,EAACD,EAAG,EAAE,GACP,OAAAkB,EAACqD,aACA,QAAA9F,EAAMH,QACP,OAAApB,GAAM8E,OAAeI,QACjB,WAAAjF,GAAU6E,OAAeI,QAC1B,WAAA,OACD/E,SAAAA,GACCY,UAAAA,EAAAA,CAAQ,IAfrB;AAAA,IAkBAjC,KAAcoF,KAAIwD,IAAK/D,EAAEZ,EAAC2B,KAAM,IAAIf,EAAEZ,EAAC6B,GAAI,CAAC,IAAI,2BAC/C2B,GAAA,MAAA,EACS,OAAA;AAAA,MAAAuB,YACO;AAAA,MAAQ,GAChB9H,GAAM+H,qBAAN,CAAA;AAAA,IAA8B,GAEzB,WAAAC,GAAG,uBAAuB/H,GAAU8H,iBAAmB,GAC/D,IAAA,UACO,UAAA;AAAA,MAAAvB,SACC;AAAA,QAAAxC,GACHA,EAAE,GAAGjB,EAACD,EAAG,EAAE,IAAekB,EAACqD,UAAAA,IAAe;AAAA,QAAC1D,IAC3CA,EAAEZ,EAAC2B,KAAM,IAAIf,EAAEZ,EAAC6B,GAAI,KAAK;AAAA,QAAC6B,SACrB;AAAA,QAACa,MAERhJ,EAAI6E,OAAQ8E,EAAc,EAAC9D,WAAY,IACnC+D,GAA2BzJ,IAKzB,IAJDsE,EAAC2D,QAEAwB,GACEzJ,EAASO,EAAW2H,QAAS5D,EAAC2D,KAAM,CAAC,CACvC,IAHAwB,GAA2BV,GAAMC,IAGjC;AAAA,MAAA;AAAA,MACTb,aACY;AAAA,QAAA5C,GACPA,EAAE,GAAGjB,EAACD,EAAG,EAAE,IAAekB,EAACqD,UAAAA,IAAe;AAAA,QAAC1D,IAC3CA,EAAEZ,EAAC2B,KAAM,IAAIf,EAAEZ,EAAC6B,GAAI,KAAK;AAAA,QAAC0C,MAE5BhJ,EAAI6E,OAAQgF,EAAc,EAAChE,WAAY,IACnC+D,GAA2BzJ,IAKzB,IAJDsE,EAAC2D,QAEAwB,GACEzJ,EAASO,EAAW2H,QAAS5D,EAAC2D,KAAM,CAAC,CACvC,IAHAwB,GAA2BV,GAAMC,IAGjC;AAAA,QAAChB,SACA;AAAA,QAACI,YACE;AAAA,UAAAC,UAAY3G,EAAO2G;AAAAA,QAAAA;AAAAA,MAAU;AAAA,IAC3C,GAEM,SAAA,WACC,SAAA/F,IAAA,gBAAA,WACH,MAAA;AAAA,MAAA0F,SACK;AAAA,MAACI,YACE;AAAA,QAAAC,UAAY3G,EAAO2G;AAAAA,MAAAA;AAAAA,IAAU,GAG1CsB,UAAAA,GACCrF,EAAC4B,OAAQT,KAAIwD,IAAK3E,EAAC4B,IAAc,IAAL5B,EAAC4B,MAC7BrE,IACAF,IACAzB,IACAD,IACA8B,EACF,GACF,IApDD;AAAA,EAAA,EAAA,GArHIuC,EAACC,KA2KR,CAEJ,GACCqF,KAAAjJ,KAAAgI,gBAAAA,EAAAA,IAAAkB,EAAAA,UAAA,EAEIlJ,UAAAA,GAASoC,IAAK,CAAA+G,GAAAC,MACbpB,gBAAAA,EAAAA,IAACqB,IAAA,EAEO,MAAAC,EAAEC,MACD,OAAAD,EAAEhC,OACN,GAAA/C,EAAE+E,EAAEE,KAAgB,GACnB,IAAA,IAAI9K,GACJ,IAAAwE,IAAaf,EAAMD,OACX,YAAAoH,EAAEzI,YACN,QAAAyI,EAAE1I,QACDG,SAAAA,GACCY,UAAAA,KATL8B,CASa,CAErB,GAAC,IAfL;AAiBO,MAAAgG;AAAA,EAAAjL,EAAA,EAAA,MAAAqI,KAAArI,UAAAuI,MAAAvI,EAAA,EAAA,MAAAyK,MApMVQ,4BAAC5C,GAAA,EACEE,UAAAA;AAAAA,IAAAA;AAAAA,IAkLAkC;AAAAA,EAAAA,GAkBH,GAAkBzK,QAAAqI,GAAArI,QAAAuI,IAAAvI,QAAAyK,IAAAzK,QAAAiL,MAAAA,KAAAjL,EAAA,EAAA;AAAA,MAAAkL;AAAA,EAAAlL,UAAAyC,KACjByI,KAAAzI,EAAY8C,OAAQ4F,EAA2B,EAACvH,IAAKwH,EAAY,GAACpL,QAAAyC,GAAAzC,QAAAkL,MAAAA,KAAAlL,EAAA,EAAA;AAAA,MAAAqL;AAAA,EAAArL,EAAA,EAAA,MAAAqC,GAAAf,WAAAtB,EAAA,EAAA,MAAAsE,KAAAtE,EAAA,EAAA,MAAAwE,KAAAxE,EAAA,EAAA,MAAAiE,KAAAjE,EAAA,EAAA,MAAAoC,GAAAd,WAAAtB,EAAA,EAAA,MAAAsB,KAGtE+J,KAAApH,KAAA3C,KAAAgD,KAAAE,0BACE8G,IAAA,EACOrH,SACA3C,MAAAA,GACAgD,SACAE,MAAAA,GACW,iBAAApC,GAAMd,SACZ,WAAAe,GAAUf,SAAS,IAPjC,MASOtB,EAAA,EAAA,IAAAqC,GAAAf,SAAAtB,QAAAsE,GAAAtE,QAAAwE,GAAAxE,QAAAiE,GAAAjE,EAAA,EAAA,IAAAoC,GAAAd,SAAAtB,QAAAsB,GAAAtB,QAAAqL,MAAAA,KAAArL,EAAA,EAAA;AAAA,MAAAuL;AAAA,SAAAvL,EAAA,EAAA,MAAAqC,GAAAmJ,SAAAxL,EAAA,EAAA,MAAAiC,KAAAjC,EAAA,EAAA,MAAAoE,KAAApE,UAAAqE,KACPkH,IAAAtJ,KAAkBmC,MAAmBvB,SACpC2G,gBAAAA,EAAAA,IAACiC,MACOxJ,MAAAA,GACAmC,MAAAA,GACGC,SAAAA,GACE,WAAAhC,GAAUmJ,OAAO,IAL/B,MAOOxL,EAAA,EAAA,IAAAqC,GAAAmJ,OAAAxL,QAAAiC,GAAAjC,QAAAoE,GAAApE,QAAAqE,GAAArE,QAAAuL,KAAAA,IAAAvL,EAAA,EAAA,GAjSV0I,gBAAAA,EAAAA,KAAAgC,YAAA,EACE,UAAA;AAAA,IAAAlB,gBAAAA,EAAAA,IAAAb,GAAA,KAAA,EACO7F,KAAAA,IACE,OAAA,GAAGnC,EAAK,MACP,QAAA,GAAGC,CAAM,MACR,SAAA,OAAOD,EAAK,IAAIC,CAAM,IACrB,WAAA,OAEV,UAAA8H,gBAAAA,EAAAA,KAAA,KAAA,EAAc,WAAA,aAAa/E,EAAMF,IAAK,IAAIE,EAAMJ,GAAI,KAClD,UAAA;AAAA,MAAAiG,gBAAAA,EAAAA,IAACkC,MACK,IAAA3F,EAAE/B,IAAS,IAAT,IAAAA,CAAuB,GACzB,IAAA+B,EAAE/B,IAAS,IAAT,IAAAA,CAAuB,GACzB,IAAA,IAAI9D,GACJ,IAAAwE,IAAaf,EAAMD,OACTf,cAAAA,IAEZ,OAAAxB,KACIqJ,GACExG,IAAS,IAAT,IAAAA,GACAnB,QACAL,IACAzB,IACAD,IACA8B,EAEM,IATZC,QAWQ,UAAA;AAAA,QAAAuD,GACL,IAAIlG;AAAAA,QAAUyL,IACb;AAAA,QAACC,IACD9H,KAAS,IAAT,QAAA;AAAA,QAAuBiC,GACxBA,EAAE/B,IAAS,IAAT,IAAAA,CAAuB;AAAA,MAAA,GAElB,YAAAuD,GAIJ,QAAAG,EAAAA;MAETvG,KACCqI,gBAAAA,EAAAA,IAACqC,IAAA,EACS,QAAApF,GAAMlB,OAAQuG,EAAY,GAC/B,GAAArF,GAAMlB,OAAQwG,EAAY,EAACnI,IAAKoI,CAAAA,MAAKjG,EAAEZ,CAAC,CAAC,GACxC,IAAA,IAAIjF,GACJ,IAAAwE,IAAaf,EAAMD,OACf,QAAA;AAAA,QAAAuI,WACK7J,GAAMiF,OAAkB4E;AAAAA,QAAA3E,QAC3BlF,GAAMiF,OAAeC;AAAAA,MAAAA,GAEnB,YAAA;AAAA,QAAA2E,WACC5J,GAAUgF,OAAkB4E;AAAAA,QAAA3E,QAC/BjF,GAAUgF,OAAeC;AAAAA,MAAAA,GAE3BxG,QAAAA,IACAC,QAAAA,IACE,WAAA,aACV,eAAA,IACS,UAAA,YACEyB,WAAAA,IACHI,QAAAA,GAAAA,CAAM,IApBjB;AAAA,MAuBDoF;AAAAA,MAQCE;AAAAA,MACD+C;AAAAA,MAsMCC;AAAAA,IAAAA,EAAAA,CACH,EAAA,CACF;AAAA,IACCG;AAAAA,IAUAE;AAAAA,EAAAA,GAOO;AACP;AA1ZA,SAAAH,GAAAc,GAAA;AAAA,SAqY8D/G,EAACgH;AAAM;AArYrE,SAAAhB,GAAAiB,GAAA;AAAA,SAqY6BjH,EAACkH,aAAc;AAAO;AArYnD,SAAA9B,GAAA+B,GAAA;AAAA,SAmVuCxB,EAAEhC;AAAM;AAnV/C,SAAAuB,GAAAkC,GAAA;AAAA,SAuUuCzB,EAAEhC;AAAM;AAvU/C,SAAAiB,GAAAyC,GAAA;AAAA,SAwRuC1B,EAAEhC;AAAM;AAxR/C,SAAAa,GAAAmB,GAAA;AAAA,SA6QuCA,EAAEhC;AAAM;AA7Q/C,SAAAV,GAAAqE,GAAA;AAAA,SA8L+DtH,EAACgH;AAAM;AA9LtE,SAAAhE,GAAAuE,GAAA;AAAA,SA8L6BvH,EAACkH,aAAc;AAAQ;AA9LpD,SAAAN,GAAAY,GAAA;AAAA,SAkK6BxH,MAAM;AAAC;AAlKpC,SAAA2G,GAAAc,GAAA;AAAA,SAiKkCzH,MAAM;AAAC;AAjKzC,SAAAU,GAAAgH,GAAA;AAAA,SA2FsC,GAAG1H,EAACD,EAAG;AAAE;AA3F/C,SAAAQ,GAAAoH,GAAA;AAAA,SAiFwB;AAAA,IAAA5H,IACvBA;AAAAA,IAAEE,OACKF;AAAAA,IAAE4D,OACF;AAAA,IAAI/B,MACL;AAAA,EAAA;AACP;AAtFA,SAAAlD,GAAAsB,GAAA;AAAA,SAsDiDA,EAAC4B;AAAK;ACgBvD,SAAAgG,GAAAhN,GAAA;AAAA,QAAAC,IAAAC,GAAAA,EAAA,GAAA,GACL;AAAA,IAAAS,MAAAA;AAAAA,IAAAsM,YAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAnM,QAAAX;AAAAA,IAAA+M,SAAAA;AAAAA,IAAAnM,QAAAV;AAAAA,IAAA8M,kBAAAA;AAAAA,IAAAnM,YAAAT;AAAAA,IAAAW,YAAAT;AAAAA,IAAAU,WAAA6B;AAAAA,IAAA3B,YAAAgC;AAAAA,IAAAzC,QAAAA;AAAAA,IAAAD,OAAAA;AAAAA,IAAAyM,UAAAA;AAAAA,IAAAhM,aAAAA;AAAAA,IAAAiM,kBAAAA;AAAAA,IAAAzL,uBAAAA;AAAAA,IAAA0L,SAAAA;AAAAA,IAAAC,iBAAAjK;AAAAA,IAAAhD,WAAAA;AAAAA,IAAAE,cAAAA;AAAAA,IAAAN,YAAAA;AAAAA,IAAAE,aAAAA;AAAAA,IAAAa,YAAA2D;AAAAA,IAAA4I,gBAAAA;AAAAA,IAAAlM,SAAAA;AAAAA,IAAAC,mBAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAiM,gBAAA7H;AAAAA,IAAA8H,SAAAA;AAAAA,IAAAhM,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAE,oBAAAA;AAAAA,IAAA8L,eAAA1G;AAAAA,IAAA2G,cAAAxG;AAAAA,IAAAtF,YAAAA;AAAAA,IAAA+L,UAAAtG;AAAAA,IAAAuG,aAAAtG;AAAAA,IAAAuG,WAAAtG;AAAAA,IAAAuG,OAAAtG;AAAAA,IAAA3F,iBAAAA;AAAAA,IAAAkM,iBAAAA;AAAAA,IAAAjM,iBAAAA;AAAAA,IAAAkM,WAAAA;AAAAA,IAAAjM,gBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,WAAAwF;AAAAA,IAAAvF,QAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAA8L,UAAAvG;AAAAA,IAAArF,SAAAsF;AAAAA,IAAAvF,eAAAyF;AAAAA,IAAAvF,WAAAwF;AAAAA,IAAAvF,cAAAyF;AAAAA,IAAAxF,SAAA6F;AAAAA,IAAA5F,cAAA8H;AAAAA,IAAA7H,QAAAqI;AAAAA,EAAAA,IA0DIlL,GAtDFe,IAAAX,OAAA0C,SAAA,KAAA1C,IAEAY,KAAAV,OAAAwC,SAAA,KAAAxC,IAEAW,IAAAT,MAAAsC,SAAA,OAAAtC,GACAW,KAAAT,OAAAoC,SAAA,KAAApC,IACAU,IAAA6B,OAAAH,SAAA,KAAAG,IACA3B,KAAAgC,OAAAR,SAAA,MAAAQ,IAQAkK,IAAAjK,OAAAT,SAAA,KAAAS,IAKArC,IAAA2D,OAAA/B,SAAA,KAAA+B,IAKA6I,IAAA7H,OAAA/C,SAAA,KAAA+C,IAKA+H,IAAA1G,MAAApE,SAAA,KAAAoE,GACA2G,IAAAxG,OAAAvE,SAAA,KAAAuE,IAEAyG,IAAAtG,OAAA1E,SAAA,OAAA0E,IACAuG,KAAAtG,OAAA3E,SAAA,KAAA2E,IACAuG,IAAAtG,OAAA5E,SAAA,IAAA4E,IACAuG,IAAAtG,MAAA7E,SAAA,UAAA6E,GAOAvF,KAAAwF,OAAA9E,SAAA,IAAA8E,IAGAwG,IAAAvG,OAAA/E,SAAA,KAAA+E,IACArF,IAAAsF,OAAAhF,SAAA,KAAAgF,IACAvF,KAAAyF,OAAAlF,SAAA,MAAAkF,IACAvF,KAAAwF,MAAAnF,SAAA,IAAAmF;AAAa,MAAAkD;AAAA,EAAAlL,SAAAkI,KACbgD,IAAAhD,MAAArF,SAAA,CAAA,IAAAqF,GAAiBlI,OAAAkI,GAAAlI,OAAAkL,KAAAA,IAAAlL,EAAA,CAAA;AAAjB,QAAAyC,KAAAyI,GACAxI,KAAA6F,OAAA1F,SAAA,OAAA0F,IACA5F,KAAA8H,MAAA5H,SAAA,KAAA4H,GACA7H,KAAAqI,MAAApI,SAAA,OAAAoI,GAEF,CAAAmD,GAAAC,EAAA,IAAgClK,GAAS,CAAC,GAC1C,CAAAmK,GAAAC,EAAA,IAAkCpK,GAAS,CAAC,GAC5C,CAAA1C,IAAA+M,EAAA,IAA0CrK,GAA6BtB,MAAS,GAEhF4L,KAAiB1L,GAAuB,IAAI,GAC5C2L,KAAuB3L,GAAuB,IAAI;AAAE,MAAAsI,GAAAE;AAAA,EAAAvL,EAAA,CAAA,MAAA2O,uBAAAC,IAAA,2BAAA,KAE1CvD,IAAAA,MAAA;AACR,UAAAwD,IAAuB,IAAIC,eAAeC,CAAAA,OAAA;AACxCV,MAAAA,GAAYU,GAAO,CAAA,EAAGC,OAAOC,eAAjB,GAAoC,GAChDV,GAAaQ,GAAO,CAAA,EAAGC,OAAOE,gBAAjB,GAAqC;AAAA,IAAC,CACpD;AACD,WAAIT,GAAQU,WACVN,EAAcO,QAASX,GAAQU,OAAQ,GAElC,MAAMN,EAAcQ,WAAAA;AAAAA,EAAa,GACvC9D,IAAA,CAAA,GAAEvL,OAAAqL,GAAArL,OAAAuL,MAAAF,IAAArL,EAAA,CAAA,GAAAuL,IAAAvL,EAAA,CAAA,IATLsP,GAAUjE,GASPE,CAAE;AAGU,QAAAgE,IAAAlN,GAAUmN,gBACdC,IAAArN,GAAMoN;AAAgB,MAAAE;AAAA,EAAA1P,SAAAqC,GAAAsN,eAAA3P,SAAAqC,GAAAyF,SAAA9H,SAAAU,KAAAV,EAAA,CAAA,MAAA4N,KAAA5N,EAAA,CAAA,MAAAmN,KAAAnN,EAAA,CAAA,MAAA2N,KAAA3N,UAAAgN,KAAAhN,EAAA,EAAA,MAAAoC,GAAAuN,eAAA3P,EAAA,EAAA,MAAAoC,GAAA0F,SAAA9H,EAAA,EAAA,MAAAW,KAa5B+O,IAAA1C,KAAAG,KAAAQ,KAAAC,IACCpE,gBAAAA,MAACoG,MACS,QAAA;AAAA,IAAA9H,OACC1F,GAAM0F;AAAAA,IAAO6H,aACPvN,GAAMuN;AAAAA,EAAAA,GAET,YAAA;AAAA,IAAA7H,OACHzF,GAAUyF;AAAAA,IAAO6H,aACXtN,GAAUsN;AAAAA,EAAAA,GAEb3C,YAAAA,GACMG,kBAAAA,GACXxM,OAAAA,GACQ,eAAAgN,IAAAe,KAAA7L,QAEb,cAAA+K,IACIlN,EAAIkD,IAAKC,EAAW,EAAC0B,OAAQG,EAAoB,EAACa,SAAU,IAC1D7F,EAAIkD,IAAKiC,EAAW,EAACN,OAAQuG,EACG,IAAhCpL,EAAI6E,OAAQwG,EAAoB,IAHtC,MAIQ,IAnBb,MAsBO/L,EAAA,CAAA,IAAAqC,GAAAsN,aAAA3P,EAAA,CAAA,IAAAqC,GAAAyF,OAAA9H,OAAAU,GAAAV,OAAA4N,GAAA5N,OAAAmN,GAAAnN,OAAA2N,GAAA3N,QAAAgN,GAAAhN,EAAA,EAAA,IAAAoC,GAAAuN,aAAA3P,EAAA,EAAA,IAAAoC,GAAA0F,OAAA9H,QAAAW,GAAAX,QAAA0P,KAAAA,IAAA1P,EAAA,EAAA;AAAA,MAAA6P;AAAA,EAAA7P,EAAA,EAAA,MAAAqC,GAAAyN,eAAA9P,EAAA,EAAA,MAAAoB,KAAApB,EAAA,EAAA,MAAAqN,MAAArN,UAAAiN,KAAAjN,EAAA,EAAA,MAAAU,KAAAV,EAAA,EAAA,MAAAyN,KAAAzN,EAAA,EAAA,MAAA8N,MAAA9N,EAAA,EAAA,MAAAgO,KAAAhO,UAAAW,KACPkP,KAAApC,KAAkB/M,EAAI6E,OAAQ4C,EAAc,EAAC5B,WAAY,KAAK7F,EAAI6F,SAAU,IAC3EiD,gBAAAA,EAAAA,IAACuG,IAAA,EACQpP,OAAAA,GACW0M,kBAAAA,IACV,QAACJ,KAAmCrD,GAAOoE,CAAK,EAACgC,kBAAkB/C,QAC9D,aAAA7L,KAAgB6O,GAAOvP,GAAM,SAAS,EAAI,GACrC8N,kBAAAA,IACLV,aAAAA,IACF,WAAAzL,GAAUyN,aAAa,IARrC,MAUO9P,EAAA,EAAA,IAAAqC,GAAAyN,aAAA9P,QAAAoB,GAAApB,QAAAqN,IAAArN,QAAAiN,GAAAjN,QAAAU,GAAAV,QAAAyN,GAAAzN,QAAA8N,IAAA9N,QAAAgO,GAAAhO,QAAAW,GAAAX,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAkQ;AAAA,EAAAlQ,EAAA,EAAA,MAAAU,KAAAV,UAAAmO,KAEL+B,IAAAxP,EAAI6E,OAAQoH,CAAAA,MAAMwB,IAAA,CAAYpK,GAAuBoB,EAAC4B,IAAK,IAAzC4F,CAA+C,EAACpG,WAAY,2BAC5E4J,IAAA,EAAU,GACZnQ,QAAAU,GAAAV,QAAAmO,GAAAnO,QAAAkQ,KAAAA,IAAAlQ,EAAA,EAAA;AAAA,MAAAoQ;AAAA,EAAApQ,EAAA,EAAA,MAAAuC,KAAAvC,UAAAkC,KAAAlC,EAAA,EAAA,MAAAgB,KAAAhB,UAAAQ,MAAAR,EAAA,EAAA,MAAAqC,KAAArC,UAAAoB,KAAApB,EAAA,EAAA,MAAAiN,KAAAjN,EAAA,EAAA,MAAAyC,MAAAzC,EAAA,EAAA,MAAAU,KAAAV,EAAA,EAAA,MAAAiC,KAAAjC,EAAA,EAAA,MAAAsC,MAAAtC,EAAA,EAAA,MAAAmO,KAAAnO,UAAA2C,MAAA3C,EAAA,EAAA,MAAA4B,KAAA5B,UAAA8B,KAAA9B,EAAA,EAAA,MAAA6N,KAAA7N,UAAAE,MAAAF,EAAA,EAAA,MAAA4C,MAAA5C,EAAA,EAAA,MAAA+B,MAAA/B,EAAA,EAAA,MAAAiO,KAAAjO,EAAA,EAAA,MAAA0B,KAAA1B,EAAA,EAAA,MAAAgC,MAAAhC,EAAA,EAAA,MAAA2B,KAAA3B,EAAA,EAAA,MAAA0C,MAAA1C,UAAAmC,MAAAnC,EAAA,EAAA,MAAA6B,KAAA7B,EAAA,EAAA,MAAAuB,MAAAvB,EAAA,EAAA,MAAAwC,MAAAxC,EAAA,EAAA,MAAAe,MAAAf,EAAA,EAAA,MAAAwB,KAAAxB,EAAA,EAAA,MAAAI,KAAAJ,UAAAyB,MAAAzB,EAAA,EAAA,MAAAiB,KAAAjB,UAAAmB,KAAAnB,EAAA,EAAA,MAAAkB,MAAAlB,UAAAoC,KAAApC,EAAA,EAAA,MAAAc,KAAAd,EAAA,EAAA,MAAAsO,KAAAtO,EAAA,EAAA,MAAAoO,KAAApO,EAAA,EAAA,MAAAgO,KAAAhO,EAAA,EAAA,MAAAsB,MAAAtB,EAAA,EAAA,MAAAM,KAAAN,UAAAqB,MACA+O,KAAAhC,KAAAE,KAED5N,EAAI6E,OAAQmH,CAAAA,MAAMyB,IAAA,CAAYpK,GAAuBoB,EAAC4B,IAAK,IAAzC2F,CAA+C,EAACnG,SAAU,IAC1EiD,gBAAAA,EAAAA,IAAC1J,IAAA,EACe6C,cAAAA,IACR,MAAAjC,EAAI6E,OACAyG,CAAAA,MAAMmC,IAAA,CAAYpK,GAAuBoB,EAAC4B,IAAK,IAAzCiF,CAA+C,EAACzG,OACtD,CAAA8K,GAAApL,OAAYgJ,IAAkBhJ,KAAIgJ,IAAtB,EAA6C,GAEjE,UAAAvN,EAAI6E,OAAQ6C,EAAc,EAAC7B,WAAY,IACnC0G,IAAA,CACGA,CAAgB,IADnB,CAEGrD,GAAM0G,cAAe,UAAU,CAAC,IAClCrD,KAAmCrD,GAAOoE,CAAK,EAACgC,kBAAkB/C,QAGvE,aAAAvM,EAAI6E,OAAQoE,EAAc,EAACpD,WAAY,IAAvC,CAAA,IAEInF,KAAgB6O,GAAOvP,GAAM,SAAS,EAAI,GAEjCe,eAAAA,IACR2M,UACCE,WACAxN,QAAAA,GACAC,QAAAA,IACIC,YAAAA,GACAE,YAAAA,IACDC,WAAAA,GACCjB,YAAAA,IACCE,aAAAA,GACFE,WAAAA,GACGE,cAAAA,IACFa,YAAAA,IACAJ,YAAAA,GACHK,SAAAA,IACUC,mBAAAA,IACRC,WAAAA,GACDE,UAAAA,GACAC,UAAAA,GACaC,uBAAAA,GACHC,oBAAAA,GACRC,YAAAA,GACP,KAAA+L,MAAa,QAAQA,MAAa,MACtB9L,iBAAAA,IACAC,iBAAAA,IACDC,gBAAAA,GACFC,cAAAA,GACHC,WAAAA,IACCE,YAAAA,GACJD,QAAAA,GAEN,SAAAG,MAAY,KAAZ;AAAA,IAAA2G,UACgB;AAAA,IAAGhG,MAAQ;AAAA,IAAID,QAAU;AAAA,EAAA,IACrCV,KAAA;AAAA,IAAA2G,UAAuB;AAAA,IAAChG,MAAQ;AAAA,IAAID,QAAU;AAAA,EAAA,GAErCX,eAAAA,IACJE,WAAAA,IACGC,cAAAA,IACLC,SAAAA,IACDE,QAAAA,IAAM,IA3DjB,MA6DO5C,QAAAuC,GAAAvC,QAAAkC,GAAAlC,QAAAgB,GAAAhB,QAAAQ,IAAAR,QAAAqC,GAAArC,QAAAoB,GAAApB,QAAAiN,GAAAjN,QAAAyC,IAAAzC,QAAAU,GAAAV,QAAAiC,GAAAjC,QAAAsC,IAAAtC,QAAAmO,GAAAnO,QAAA2C,IAAA3C,QAAA4B,GAAA5B,QAAA8B,GAAA9B,QAAA6N,GAAA7N,QAAAE,IAAAF,QAAA4C,IAAA5C,QAAA+B,IAAA/B,QAAAiO,GAAAjO,QAAA0B,GAAA1B,QAAAgC,IAAAhC,QAAA2B,GAAA3B,QAAA0C,IAAA1C,QAAAmC,IAAAnC,QAAA6B,GAAA7B,QAAAuB,IAAAvB,QAAAwC,IAAAxC,QAAAe,IAAAf,QAAAwB,GAAAxB,QAAAI,GAAAJ,QAAAyB,IAAAzB,QAAAiB,GAAAjB,QAAAmB,GAAAnB,QAAAkB,IAAAlB,QAAAoC,GAAApC,QAAAc,GAAAd,QAAAsO,GAAAtO,QAAAoO,GAAApO,QAAAgO,GAAAhO,QAAAsB,IAAAtB,QAAAM,GAAAN,QAAAqB,IAAArB,QAAAoQ,MAAAA,KAAApQ,EAAA,EAAA;AAAA,MAAAuQ;AAAA,EAAAvQ,EAAA,EAAA,MAAAkQ,KAAAlQ,UAAAoQ,MAjEVG,4BAACC,IAAA,EAAe/B,SACbyB,UAAAA;AAAAA,IAAAA;AAAAA,IAGAE;AAAAA,EAAAA,GA8DH,GAAYpQ,QAAAkQ,GAAAlQ,QAAAoQ,IAAApQ,QAAAuQ,MAAAA,KAAAvQ,EAAA,EAAA;AAAA,MAAAyQ;AAAA,EAAAzQ,EAAA,EAAA,MAAAqC,GAAAqO,YAAA1Q,EAAA,EAAA,MAAAqC,GAAAsO,UAAA3Q,EAAA,EAAA,MAAAoN,MAAApN,EAAA,EAAA,MAAAkN,KAAAlN,EAAA,EAAA,MAAAoC,GAAAsO,YAAA1Q,EAAA,EAAA,MAAAoC,GAAAuO,UAAA3Q,UAAAW,KACX8P,KAAAvD,KAAAE,KACC5D,gBAAAA,MAACoH,MACU1D,SAAAA,GACCE,UAAAA,IACHzM,OAAAA,GACC,QAAA;AAAA,IAAA+P,UAAYtO,GAAMsO;AAAAA,IAAUC,QAAUvO,GAAMuO;AAAAA,EAAAA,GACxC,YAAA;AAAA,IAAAD,UACArO,GAAUqO;AAAAA,IAAUC,QACtBtO,GAAUsO;AAAAA,EAAAA,GACnB,IATJ,MAWO3Q,EAAA,EAAA,IAAAqC,GAAAqO,UAAA1Q,EAAA,EAAA,IAAAqC,GAAAsO,QAAA3Q,QAAAoN,IAAApN,QAAAkN,GAAAlN,EAAA,EAAA,IAAAoC,GAAAsO,UAAA1Q,EAAA,EAAA,IAAAoC,GAAAuO,QAAA3Q,QAAAW,GAAAX,QAAAyQ,MAAAA,KAAAzQ,EAAA,EAAA;AAAA,MAAA6Q;AAAA,SAAA7Q,EAAA,EAAA,MAAAkO,MAAAlO,EAAA,EAAA,MAAAuN,KAAAvN,EAAA,EAAA,MAAA0N,MAAA1N,EAAA,EAAA,MAAAY,MAAAZ,EAAA,EAAA,MAAA6N,KAAA7N,EAAA,EAAA,MAAA+N,KAAA/N,EAAA,EAAA,MAAAsN,MAAAtN,EAAA,EAAA,MAAAwN,KAAAxN,EAAA,EAAA,MAAAuP,KAAAvP,EAAA,EAAA,MAAAyP,KAAAzP,EAAA,EAAA,MAAA0P,KAAA1P,EAAA,EAAA,MAAA6P,MAAA7P,EAAA,EAAA,MAAAuQ,MAAAvQ,EAAA,EAAA,MAAAyQ,MAAAzQ,EAAA,EAAA,MAAAgO,KAAAhO,UAAAW,KA/HVkQ,4BAACC,IAAA,EACY,WAAAvB,GACJ,OAAAE,GACH/B,QACCgB,SACOR,cAAAA,IACKX,iBAAAA,GACVS,OAAAA,GACGH,UAAAA,GACCE,WAAAA,GACJpN,OAAAA,GACCC,QAAAA,IACQ4M,gBAAAA,GACPF,SAAAA,IAERoC,UAAAA;AAAAA,IAAAA;AAAAA,IAuBAG;AAAAA,IAWDU;AAAAA,IAmECE;AAAAA,EAAAA,GAYH,GAAiBzQ,QAAAkO,IAAAlO,QAAAuN,GAAAvN,QAAA0N,IAAA1N,QAAAY,IAAAZ,QAAA6N,GAAA7N,QAAA+N,GAAA/N,QAAAsN,IAAAtN,QAAAwN,GAAAxN,QAAAuP,GAAAvP,QAAAyP,GAAAzP,QAAA0P,GAAA1P,QAAA6P,IAAA7P,QAAAuQ,IAAAvQ,QAAAyQ,IAAAzQ,QAAAgO,GAAAhO,QAAAW,GAAAX,QAAA6Q,MAAAA,KAAA7Q,EAAA,EAAA,GAhIjB6Q;AAgIiB;AA9Md,SAAAlH,GAAA4C,GAAA;AAAA,SAmJyBzB,EAAEhC;AAAM;AAnJjC,SAAAV,GAAAoE,GAAA;AAAA,SA4IyB1B,EAAEhC;AAAM;AA5IjC,SAAAX,GAAA2C,GAAA;AAAA,SAoHoCA,EAAEhC;AAAM;AApH5C,SAAAiD,GAAAc,GAAA;AAAA,SA+G4B1H,MAAMtC;AAAS;AA/G3C,SAAAiJ,GAAA9G,GAAA;AAAA,SA8G6CG,MAAMtC;AAAS;AA9G5D,SAAAgD,GAAAV,GAAA;AAAA,SA8GyBA,EAACzE;AAAK;AA9G/B,SAAAgF,GAAAkH,GAAA;AAAA,SA6G2CzH,MAAMtC;AAAS;AA7G1D,SAAAgB,GAAAgD,GAAA;AAAA,SA6GuB1B,EAACzE;AAAK;"}
1
+ {"version":3,"file":"WaterfallChart.js","sources":["../src/Components/Graphs/WaterfallChart/Graph.tsx","../src/Components/Graphs/WaterfallChart/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 ReferenceDataType,\r\n StyleObject,\r\n WaterfallChartDataType,\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 { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { 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\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\n\r\ninterface Props {\r\n data: WaterfallChartDataType[];\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 // 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 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 hideAxisLine: boolean;\r\n locale: string;\r\n padZeros: boolean;\r\n}\r\nfunction getWaterfallExtent(values: (number | null | undefined)[]) {\r\n let cumulative = 0;\r\n let max = 0;\r\n let min = 0;\r\n\r\n for (const v of values) {\r\n cumulative += v || 0;\r\n if (cumulative > max) max = cumulative;\r\n if (cumulative < min) min = cumulative;\r\n }\r\n\r\n return {\r\n max,\r\n min,\r\n };\r\n}\r\n\r\nexport function Graph(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 detailsOnClick,\r\n barAxisTitle,\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 hideAxisLine,\r\n locale,\r\n padZeros,\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\r\n const { max, min } = getWaterfallExtent(data.map(d => d.size));\r\n\r\n const maxVal = !checkIfNullOrUndefined(maxValue) ? (maxValue as number) : max;\r\n const minVal = !checkIfNullOrUndefined(minValue) ? (minValue as number) : min;\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([minVal, maxVal]).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 let running = 0;\r\n\r\n const waterfallData = dataWithId.map(d => {\r\n const start = running;\r\n running += d.size || 0;\r\n return {\r\n ...d,\r\n start,\r\n end: running,\r\n };\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 <Axis\r\n y1={y(minVal < 0 ? 0 : minVal)}\r\n y2={y(minVal < 0 ? 0 : minVal)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n hideAxisLine={hideAxisLine}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minVal < 0 ? 0 : minVal,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxVal < 0 ? '1em' : -5,\r\n y: y(minVal < 0 ? 0 : minVal),\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 locale={locale}\r\n padZeros={padZeros}\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 {waterfallData.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\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\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)) {\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 {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(d.start),\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: Math.abs(y(d.start) - y(d.end)),\r\n y: y(Math.max(d.start, d.end)),\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(d.start),\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={y(0) + 5}\r\n x={x(`${d.id}`) as number}\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 && Math.abs(y(d.start) - y(d.end)) > 16 ? (\r\n <motion.text\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 x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: (y(d.start) + y(d.end)) / 2,\r\n opacity: 0,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? getTextColorBasedOnBgColor(barColor[0])\r\n : !d.color\r\n ? getTextColorBasedOnBgColor(Colors.gray)\r\n : getTextColorBasedOnBgColor(\r\n barColor[colorDomain.indexOf(d.color)],\r\n ),\r\n },\r\n whileInView: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: (y(d.start) + y(d.end)) / 2,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? getTextColorBasedOnBgColor(barColor[0])\r\n : !d.color\r\n ? getTextColorBasedOnBgColor(Colors.gray)\r\n : getTextColorBasedOnBgColor(\r\n barColor[colorDomain.indexOf(d.color)],\r\n ),\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(\r\n d.size ? Math.abs(d.size) : d.size,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\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 } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphContainer, GraphArea } from '@/Components/Elements/GraphContainer';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n ReferenceDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n WaterfallChartDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { checkIfNullOrUndefined } from '@/Utils';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: WaterfallChartDataType[];\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 /** 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 /** 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 /** 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 /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\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 /** 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\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 WaterfallChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\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 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 detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n dimmedOpacity = 0.3,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n hideAxisLine = false,\r\n numberDisplayOptions,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\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 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 {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.filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)).length === 0 && (\r\n <EmptyState />\r\n )}\r\n {svgWidth &&\r\n svgHeight &&\r\n data.filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)).length > 0 ? (\r\n <Graph\r\n hideAxisLine={hideAxisLine}\r\n data={data\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))}\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 width={svgWidth}\r\n height={svgHeight}\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={maxValue}\r\n minValue={minValue}\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 detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\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 customLayers={customLayers}\r\n naLabel={naLabel}\r\n locale={numberDisplayOptions?.locale || 'en'}\r\n padZeros={numberDisplayOptions?.padZeros || false}\r\n suffix={numberDisplayOptions?.suffix || ''}\r\n prefix={numberDisplayOptions?.prefix || ''}\r\n precision={numberDisplayOptions?.precision ?? 2}\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"],"names":["getWaterfallExtent","values","cumulative","max","min","v","Graph","props","$","_c","leftMargin","t0","rightMargin","t1","topMargin","t2","bottomMargin","t3","data","width","height","barColor","suffix","prefix","barPadding","showLabels","showValues","showTicks","colorDomain","truncateBy","tooltip","onSeriesMouseOver","refValues","selectedColor","maxValue","minValue","highlightedDataPoints","onSeriesMouseClick","labelOrder","maxBarThickness","minBarThickness","detailsOnClick","barAxisTitle","noOfTicks","styles","classNames","dimmedOpacity","animate","precision","customLayers","naLabel","hideAxisLine","locale","padZeros","undefined","svgRef","useRef","t4","amount","once","isInView","useInView","t5","t6","top","bottom","left","right","margin","map","_temp","maxVal","checkIfNullOrUndefined","minVal","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","t7","idSet","Set","dataWithIdWithoutMissingIds","d_0","i","id","d","label","add","missingIds","filter","id_0","has","_temp2","dataWithId","t8","_temp3","barOrder","y","scaleLinear","domain","range","nice","x","scaleBand","Math","length","paddingInner","yTicks","ticks","running","waterfallData","d_2","start","size","end","t9","xAxis","axis","t10","yAxis","labels","t11","t12","t13","t14","t15","t16","t17","title","t18","t19","AxisTitle","t20","_temp6","_temp7","T0","AnimatePresence","t21","d_8","_i","jsxs","motion","initial","opacity","color","indexOf","whileInView","transition","duration","event","clientY","clientX","isEqual","event_0","jsx","bandwidth","fill","_temp8","Colors","gray","abs","_temp9","XAxesLabels","substring","textAnchor","graphObjectValues","cn","_temp0","getTextColorBasedOnBgColor","_temp1","numberFormattingFunction","t22","Fragment","el_3","i_0","RefLineY","el","text","value","t23","t24","_temp10","_temp11","t25","Tooltip","t26","modal","DetailsModal","Axis","dx","dy","YTicksAndGridLines","_temp4","_temp5","d_5","gridLines","d_10","layer","d_9","position","el_2","el_1","el_0","d_7","d_6","d_4","d_3","d_1","id_1","WaterfallChart","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","showColorScale","graphID","graphDownload","dataDownload","language","showNAColor","minHeight","theme","maxNumberOfBars","ariaLabel","filterNA","numberDisplayOptions","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","graphContainer","description","GraphHeader","colorLegend","ColorLegendWithMouseOver","categoricalColors","uniqBy","t27","EmptyState","t28","_d","primaryColors","t29","GraphArea","t30","footnote","source","GraphFooter","t31","GraphContainer"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("./index-CHPV5EwG-D4pAp7u0.cjs"),F=require("./numberFormattingFunction-u2iNHL_c.cjs");function G(h){const e=t.compilerRuntimeExports.c(35),{values:r,x:j,y1:n,y2:a,styles:s,classNames:i,prefix:x,suffix:c,labelType:l,showGridLines:o,precision:k,leftLabel:E,locale:v,padZeros:R}=h,p=k===void 0?2:k,m=E===void 0?!1:E,y=v===void 0?"en":v,u=R===void 0?!1:R;if(!r&&!o)return null;let d;if(e[0]!==i?.gridLines||e[1]!==i?.labels||e[2]!==l||e[3]!==m||e[4]!==y||e[5]!==u||e[6]!==p||e[7]!==x||e[8]!==o||e[9]!==s?.gridLines||e[10]!==s?.labels||e[11]!==c||e[12]!==r||e[13]!==j||e[14]!==n||e[15]!==a){let b;e[17]!==i?.gridLines||e[18]!==i?.labels||e[19]!==l||e[20]!==m||e[21]!==y||e[22]!==u||e[23]!==p||e[24]!==x||e[25]!==o||e[26]!==s?.gridLines||e[27]!==s?.labels||e[28]!==c||e[29]!==r||e[30]!==n||e[31]!==a?(b=(g,L)=>t.jsxRuntimeExports.jsxs("g",{children:[o?t.jsxRuntimeExports.jsx("line",{x1:g,x2:g,y1:n,y2:a,className:t.mo("undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550",i?.gridLines),style:s?.gridLines}):null,r?t.jsxRuntimeExports.jsx("text",{x:g,y:l==="primary"?a:n,dy:l==="primary"?"1em":"0.75em",dx:l==="primary"?0:g<0||m?-3:3,style:{textAnchor:l==="primary"?"middle":g<0||m?"end":"start",...s?.labels||{}},className:t.mo(l==="primary"?"fill-primary-gray-700 dark:fill-primary-gray-300 text-xs":"fill-primary-gray-550 dark:fill-primary-gray-500 text-xs",i?.labels),children:typeof r[L]=="string"?r[L]:F.numberFormattingFunction(r[L],void 0,p,x,c,y,u)}):null]},L),e[17]=i?.gridLines,e[18]=i?.labels,e[19]=l,e[20]=m,e[21]=y,e[22]=u,e[23]=p,e[24]=x,e[25]=o,e[26]=s?.gridLines,e[27]=s?.labels,e[28]=c,e[29]=r,e[30]=n,e[31]=a,e[32]=b):b=e[32],d=j.map(b),e[0]=i?.gridLines,e[1]=i?.labels,e[2]=l,e[3]=m,e[4]=y,e[5]=u,e[6]=p,e[7]=x,e[8]=o,e[9]=s?.gridLines,e[10]=s?.labels,e[11]=c,e[12]=r,e[13]=j,e[14]=n,e[15]=a,e[16]=d}else d=e[16];let f;return e[33]!==d?(f=t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:d}),e[33]=d,e[34]=f):f=e[34],f}exports.XTicksAndGridLines=G;
2
+ //# sourceMappingURL=XTicksAndGridLines-B4UhDVyU.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XTicksAndGridLines-B4UhDVyU.cjs","sources":["../src/Components/Elements/Axes/XTicksAndGridLines.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n values?: (number | string)[];\r\n x: number[];\r\n y2: number;\r\n y1: number;\r\n styles: { gridLines?: React.CSSProperties; labels?: React.CSSProperties };\r\n classNames: { gridLines?: string; labels?: string };\r\n prefix?: string;\r\n suffix?: string;\r\n labelType: 'primary' | 'secondary';\r\n showGridLines: boolean;\r\n leftLabel?: boolean;\r\n precision?: number;\r\n locale?: string;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function XTicksAndGridLines(props: Props) {\r\n const {\r\n values,\r\n x,\r\n y1,\r\n y2,\r\n styles,\r\n classNames,\r\n prefix,\r\n suffix,\r\n labelType,\r\n showGridLines,\r\n precision = 2,\r\n leftLabel = false,\r\n locale = 'en',\r\n padZeros = false,\r\n } = props;\r\n if (!values && !showGridLines) return null;\r\n return (\r\n <>\r\n {x.map((d, i) => (\r\n <g key={i}>\r\n {showGridLines ? (\r\n <line\r\n x1={d}\r\n x2={d}\r\n y1={y1}\r\n y2={y2}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550',\r\n classNames?.gridLines,\r\n )}\r\n style={styles?.gridLines}\r\n />\r\n ) : null}\r\n {values ? (\r\n <text\r\n x={d}\r\n y={labelType === 'primary' ? y2 : y1}\r\n dy={labelType === 'primary' ? '1em' : '0.75em'}\r\n dx={labelType === 'primary' ? 0 : d < 0 || leftLabel ? -3 : 3}\r\n style={{\r\n textAnchor:\r\n labelType === 'primary' ? 'middle' : d < 0 || leftLabel ? 'end' : 'start',\r\n ...(styles?.labels || {}),\r\n }}\r\n className={cn(\r\n labelType === 'primary'\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n : 'fill-primary-gray-550 dark:fill-primary-gray-500 text-xs',\r\n classNames?.labels,\r\n )}\r\n >\r\n {typeof values[i] === 'string'\r\n ? values[i]\r\n : numberFormattingFunction(\r\n values[i],\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </text>\r\n ) : null}\r\n </g>\r\n ))}\r\n </>\r\n );\r\n}\r\n"],"names":["XTicksAndGridLines","props","$","_c","values","x","y1","y2","styles","classNames","prefix","suffix","labelType","showGridLines","precision","t0","leftLabel","t1","locale","t2","padZeros","t3","undefined","t4","gridLines","labels","t5","d","i","cn","jsx","textAnchor","numberFormattingFunction","map"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { c as E, j as f, m as N } from "./index-CHPV5EwG-BzibaIRc.js";
2
+ import { n as G } from "./numberFormattingFunction-BUUV_luR.js";
3
+ function X(A) {
4
+ const e = E.c(35), {
5
+ values: i,
6
+ x: k,
7
+ y1: a,
8
+ y2: t,
9
+ styles: r,
10
+ classNames: s,
11
+ prefix: d,
12
+ suffix: p,
13
+ labelType: l,
14
+ showGridLines: n,
15
+ precision: j,
16
+ leftLabel: v,
17
+ locale: h,
18
+ padZeros: F
19
+ } = A, y = j === void 0 ? 2 : j, o = v === void 0 ? !1 : v, c = h === void 0 ? "en" : h, x = F === void 0 ? !1 : F;
20
+ if (!i && !n)
21
+ return null;
22
+ let m;
23
+ if (e[0] !== s?.gridLines || e[1] !== s?.labels || e[2] !== l || e[3] !== o || e[4] !== c || e[5] !== x || e[6] !== y || e[7] !== d || e[8] !== n || e[9] !== r?.gridLines || e[10] !== r?.labels || e[11] !== p || e[12] !== i || e[13] !== k || e[14] !== a || e[15] !== t) {
24
+ let L;
25
+ e[17] !== s?.gridLines || e[18] !== s?.labels || e[19] !== l || e[20] !== o || e[21] !== c || e[22] !== x || e[23] !== y || e[24] !== d || e[25] !== n || e[26] !== r?.gridLines || e[27] !== r?.labels || e[28] !== p || e[29] !== i || e[30] !== a || e[31] !== t ? (L = (g, u) => /* @__PURE__ */ f.jsxs("g", { children: [
26
+ n ? /* @__PURE__ */ f.jsx("line", { x1: g, x2: g, y1: a, y2: t, className: N("undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550", s?.gridLines), style: r?.gridLines }) : null,
27
+ i ? /* @__PURE__ */ f.jsx("text", { x: g, y: l === "primary" ? t : a, dy: l === "primary" ? "1em" : "0.75em", dx: l === "primary" ? 0 : g < 0 || o ? -3 : 3, style: {
28
+ textAnchor: l === "primary" ? "middle" : g < 0 || o ? "end" : "start",
29
+ ...r?.labels || {}
30
+ }, className: N(l === "primary" ? "fill-primary-gray-700 dark:fill-primary-gray-300 text-xs" : "fill-primary-gray-550 dark:fill-primary-gray-500 text-xs", s?.labels), children: typeof i[u] == "string" ? i[u] : G(i[u], void 0, y, d, p, c, x) }) : null
31
+ ] }, u), e[17] = s?.gridLines, e[18] = s?.labels, e[19] = l, e[20] = o, e[21] = c, e[22] = x, e[23] = y, e[24] = d, e[25] = n, e[26] = r?.gridLines, e[27] = r?.labels, e[28] = p, e[29] = i, e[30] = a, e[31] = t, e[32] = L) : L = e[32], m = k.map(L), e[0] = s?.gridLines, e[1] = s?.labels, e[2] = l, e[3] = o, e[4] = c, e[5] = x, e[6] = y, e[7] = d, e[8] = n, e[9] = r?.gridLines, e[10] = r?.labels, e[11] = p, e[12] = i, e[13] = k, e[14] = a, e[15] = t, e[16] = m;
32
+ } else
33
+ m = e[16];
34
+ let b;
35
+ return e[33] !== m ? (b = /* @__PURE__ */ f.jsx(f.Fragment, { children: m }), e[33] = m, e[34] = b) : b = e[34], b;
36
+ }
37
+ export {
38
+ X
39
+ };
40
+ //# sourceMappingURL=XTicksAndGridLines-CkYwVshF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XTicksAndGridLines-CkYwVshF.js","sources":["../src/Components/Elements/Axes/XTicksAndGridLines.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n values?: (number | string)[];\r\n x: number[];\r\n y2: number;\r\n y1: number;\r\n styles: { gridLines?: React.CSSProperties; labels?: React.CSSProperties };\r\n classNames: { gridLines?: string; labels?: string };\r\n prefix?: string;\r\n suffix?: string;\r\n labelType: 'primary' | 'secondary';\r\n showGridLines: boolean;\r\n leftLabel?: boolean;\r\n precision?: number;\r\n locale?: string;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function XTicksAndGridLines(props: Props) {\r\n const {\r\n values,\r\n x,\r\n y1,\r\n y2,\r\n styles,\r\n classNames,\r\n prefix,\r\n suffix,\r\n labelType,\r\n showGridLines,\r\n precision = 2,\r\n leftLabel = false,\r\n locale = 'en',\r\n padZeros = false,\r\n } = props;\r\n if (!values && !showGridLines) return null;\r\n return (\r\n <>\r\n {x.map((d, i) => (\r\n <g key={i}>\r\n {showGridLines ? (\r\n <line\r\n x1={d}\r\n x2={d}\r\n y1={y1}\r\n y2={y2}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550',\r\n classNames?.gridLines,\r\n )}\r\n style={styles?.gridLines}\r\n />\r\n ) : null}\r\n {values ? (\r\n <text\r\n x={d}\r\n y={labelType === 'primary' ? y2 : y1}\r\n dy={labelType === 'primary' ? '1em' : '0.75em'}\r\n dx={labelType === 'primary' ? 0 : d < 0 || leftLabel ? -3 : 3}\r\n style={{\r\n textAnchor:\r\n labelType === 'primary' ? 'middle' : d < 0 || leftLabel ? 'end' : 'start',\r\n ...(styles?.labels || {}),\r\n }}\r\n className={cn(\r\n labelType === 'primary'\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n : 'fill-primary-gray-550 dark:fill-primary-gray-500 text-xs',\r\n classNames?.labels,\r\n )}\r\n >\r\n {typeof values[i] === 'string'\r\n ? values[i]\r\n : numberFormattingFunction(\r\n values[i],\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </text>\r\n ) : null}\r\n </g>\r\n ))}\r\n </>\r\n );\r\n}\r\n"],"names":["XTicksAndGridLines","props","$","_c","values","x","y1","y2","styles","classNames","prefix","suffix","labelType","showGridLines","precision","t0","leftLabel","t1","locale","t2","padZeros","t3","undefined","t4","gridLines","labels","t5","d","i","cn","jsx","textAnchor","numberFormattingFunction","map"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { c as E, j as g, m as N } from "./index-CHPV5EwG-BzibaIRc.js";
2
+ import { n as G } from "./numberFormattingFunction-BUUV_luR.js";
3
+ function T(A) {
4
+ const e = E.c(35), {
5
+ values: l,
6
+ y: u,
7
+ x1: a,
8
+ x2: o,
9
+ styles: s,
10
+ classNames: i,
11
+ prefix: d,
12
+ suffix: c,
13
+ labelType: m,
14
+ showGridLines: t,
15
+ labelPos: v,
16
+ precision: j,
17
+ locale: h,
18
+ padZeros: F
19
+ } = A, r = v === void 0 ? "vertical" : v, y = j === void 0 ? 2 : j, p = h === void 0 ? "en" : h, x = F === void 0 ? !1 : F;
20
+ if (!l && !t)
21
+ return null;
22
+ let n;
23
+ if (e[0] !== i?.gridLines || e[1] !== i?.labels || e[2] !== r || e[3] !== m || e[4] !== p || e[5] !== x || e[6] !== y || e[7] !== d || e[8] !== t || e[9] !== s?.gridLines || e[10] !== s?.labels || e[11] !== c || e[12] !== l || e[13] !== a || e[14] !== o || e[15] !== u) {
24
+ let b;
25
+ e[17] !== i?.gridLines || e[18] !== i?.labels || e[19] !== r || e[20] !== m || e[21] !== p || e[22] !== x || e[23] !== y || e[24] !== d || e[25] !== t || e[26] !== s?.gridLines || e[27] !== s?.labels || e[28] !== c || e[29] !== l || e[30] !== a || e[31] !== o ? (b = (L, k) => /* @__PURE__ */ g.jsxs("g", { children: [
26
+ t ? /* @__PURE__ */ g.jsx("line", { x1: a, x2: o, y1: L, y2: L, className: N("undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550", i?.gridLines), style: s?.gridLines }) : null,
27
+ l ? /* @__PURE__ */ g.jsx("text", { x: a, y: L, dy: r === "side" ? "0.33em" : l[k] < 0 ? "1em" : -5, dx: r === "side" ? -4 : 0, style: {
28
+ textAnchor: r === "side" ? "end" : "start",
29
+ ...s?.labels || {}
30
+ }, className: N(m === "primary" ? "fill-primary-gray-700 dark:fill-primary-gray-300 text-xs" : "fill-primary-gray-550 dark:fill-primary-gray-500 text-xs", i?.labels), children: G(l[k], void 0, y, d, c, p, x) }) : null
31
+ ] }, k), e[17] = i?.gridLines, e[18] = i?.labels, e[19] = r, e[20] = m, e[21] = p, e[22] = x, e[23] = y, e[24] = d, e[25] = t, e[26] = s?.gridLines, e[27] = s?.labels, e[28] = c, e[29] = l, e[30] = a, e[31] = o, e[32] = b) : b = e[32], n = u.map(b), e[0] = i?.gridLines, e[1] = i?.labels, e[2] = r, e[3] = m, e[4] = p, e[5] = x, e[6] = y, e[7] = d, e[8] = t, e[9] = s?.gridLines, e[10] = s?.labels, e[11] = c, e[12] = l, e[13] = a, e[14] = o, e[15] = u, e[16] = n;
32
+ } else
33
+ n = e[16];
34
+ let f;
35
+ return e[33] !== n ? (f = /* @__PURE__ */ g.jsx(g.Fragment, { children: n }), e[33] = n, e[34] = f) : f = e[34], f;
36
+ }
37
+ export {
38
+ T as Y
39
+ };
40
+ //# sourceMappingURL=YTicksAndGridLines-BbujwxOB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YTicksAndGridLines-BbujwxOB.js","sources":["../src/Components/Elements/Axes/YTicksAndGridLines.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n values?: number[];\r\n y: number[];\r\n x1: number;\r\n x2: number;\r\n styles: { gridLines?: React.CSSProperties; labels?: React.CSSProperties };\r\n classNames: { gridLines?: string; labels?: string };\r\n prefix?: string;\r\n suffix?: string;\r\n labelType: 'primary' | 'secondary';\r\n showGridLines: boolean;\r\n labelPos: 'side' | 'vertical';\r\n precision?: number;\r\n locale?: string;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function YTicksAndGridLines(props: Props) {\r\n const {\r\n values,\r\n y,\r\n x1,\r\n x2,\r\n styles,\r\n classNames,\r\n prefix,\r\n suffix,\r\n labelType,\r\n showGridLines,\r\n labelPos = 'vertical',\r\n precision = 2,\r\n locale = 'en',\r\n padZeros = false,\r\n } = props;\r\n if (!values && !showGridLines) return null;\r\n return (\r\n <>\r\n {y.map((d, i) => (\r\n <g key={i}>\r\n {showGridLines ? (\r\n <line\r\n x1={x1}\r\n x2={x2}\r\n y1={d}\r\n y2={d}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550',\r\n classNames?.gridLines,\r\n )}\r\n style={styles?.gridLines}\r\n />\r\n ) : null}\r\n {values ? (\r\n <text\r\n x={x1}\r\n y={d}\r\n dy={labelPos === 'side' ? '0.33em' : values[i] < 0 ? '1em' : -5}\r\n dx={labelPos === 'side' ? -4 : 0}\r\n style={{\r\n textAnchor: labelPos === 'side' ? 'end' : 'start',\r\n ...(styles?.labels || {}),\r\n }}\r\n className={cn(\r\n labelType === 'primary'\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n : 'fill-primary-gray-550 dark:fill-primary-gray-500 text-xs',\r\n classNames?.labels,\r\n )}\r\n >\r\n {numberFormattingFunction(\r\n values[i],\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </text>\r\n ) : null}\r\n </g>\r\n ))}\r\n </>\r\n );\r\n}\r\n"],"names":["YTicksAndGridLines","props","$","_c","values","y","x1","x2","styles","classNames","prefix","suffix","labelType","showGridLines","labelPos","t0","precision","t1","locale","t2","padZeros","t3","undefined","t4","gridLines","labels","t5","d","i","cn","textAnchor","numberFormattingFunction","map"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const l=require("./index-CHPV5EwG-D4pAp7u0.cjs"),F=require("./numberFormattingFunction-u2iNHL_c.cjs");function G(h){const e=l.compilerRuntimeExports.c(35),{values:r,y:f,x1:n,x2:d,styles:s,classNames:i,prefix:c,suffix:x,labelType:m,showGridLines:a,labelPos:k,precision:v,locale:E,padZeros:R}=h,t=k===void 0?"vertical":k,p=v===void 0?2:v,u=E===void 0?"en":E,y=R===void 0?!1:R;if(!r&&!a)return null;let o;if(e[0]!==i?.gridLines||e[1]!==i?.labels||e[2]!==t||e[3]!==m||e[4]!==u||e[5]!==y||e[6]!==p||e[7]!==c||e[8]!==a||e[9]!==s?.gridLines||e[10]!==s?.labels||e[11]!==x||e[12]!==r||e[13]!==n||e[14]!==d||e[15]!==f){let b;e[17]!==i?.gridLines||e[18]!==i?.labels||e[19]!==t||e[20]!==m||e[21]!==u||e[22]!==y||e[23]!==p||e[24]!==c||e[25]!==a||e[26]!==s?.gridLines||e[27]!==s?.labels||e[28]!==x||e[29]!==r||e[30]!==n||e[31]!==d?(b=(L,j)=>l.jsxRuntimeExports.jsxs("g",{children:[a?l.jsxRuntimeExports.jsx("line",{x1:n,x2:d,y1:L,y2:L,className:l.mo("undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550",i?.gridLines),style:s?.gridLines}):null,r?l.jsxRuntimeExports.jsx("text",{x:n,y:L,dy:t==="side"?"0.33em":r[j]<0?"1em":-5,dx:t==="side"?-4:0,style:{textAnchor:t==="side"?"end":"start",...s?.labels||{}},className:l.mo(m==="primary"?"fill-primary-gray-700 dark:fill-primary-gray-300 text-xs":"fill-primary-gray-550 dark:fill-primary-gray-500 text-xs",i?.labels),children:F.numberFormattingFunction(r[j],void 0,p,c,x,u,y)}):null]},j),e[17]=i?.gridLines,e[18]=i?.labels,e[19]=t,e[20]=m,e[21]=u,e[22]=y,e[23]=p,e[24]=c,e[25]=a,e[26]=s?.gridLines,e[27]=s?.labels,e[28]=x,e[29]=r,e[30]=n,e[31]=d,e[32]=b):b=e[32],o=f.map(b),e[0]=i?.gridLines,e[1]=i?.labels,e[2]=t,e[3]=m,e[4]=u,e[5]=y,e[6]=p,e[7]=c,e[8]=a,e[9]=s?.gridLines,e[10]=s?.labels,e[11]=x,e[12]=r,e[13]=n,e[14]=d,e[15]=f,e[16]=o}else o=e[16];let g;return e[33]!==o?(g=l.jsxRuntimeExports.jsx(l.jsxRuntimeExports.Fragment,{children:o}),e[33]=o,e[34]=g):g=e[34],g}exports.YTicksAndGridLines=G;
2
+ //# sourceMappingURL=YTicksAndGridLines-sT3zdCs6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YTicksAndGridLines-sT3zdCs6.cjs","sources":["../src/Components/Elements/Axes/YTicksAndGridLines.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n values?: number[];\r\n y: number[];\r\n x1: number;\r\n x2: number;\r\n styles: { gridLines?: React.CSSProperties; labels?: React.CSSProperties };\r\n classNames: { gridLines?: string; labels?: string };\r\n prefix?: string;\r\n suffix?: string;\r\n labelType: 'primary' | 'secondary';\r\n showGridLines: boolean;\r\n labelPos: 'side' | 'vertical';\r\n precision?: number;\r\n locale?: string;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function YTicksAndGridLines(props: Props) {\r\n const {\r\n values,\r\n y,\r\n x1,\r\n x2,\r\n styles,\r\n classNames,\r\n prefix,\r\n suffix,\r\n labelType,\r\n showGridLines,\r\n labelPos = 'vertical',\r\n precision = 2,\r\n locale = 'en',\r\n padZeros = false,\r\n } = props;\r\n if (!values && !showGridLines) return null;\r\n return (\r\n <>\r\n {y.map((d, i) => (\r\n <g key={i}>\r\n {showGridLines ? (\r\n <line\r\n x1={x1}\r\n x2={x2}\r\n y1={d}\r\n y2={d}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-500 dark:stroke-primary-gray-550',\r\n classNames?.gridLines,\r\n )}\r\n style={styles?.gridLines}\r\n />\r\n ) : null}\r\n {values ? (\r\n <text\r\n x={x1}\r\n y={d}\r\n dy={labelPos === 'side' ? '0.33em' : values[i] < 0 ? '1em' : -5}\r\n dx={labelPos === 'side' ? -4 : 0}\r\n style={{\r\n textAnchor: labelPos === 'side' ? 'end' : 'start',\r\n ...(styles?.labels || {}),\r\n }}\r\n className={cn(\r\n labelType === 'primary'\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n : 'fill-primary-gray-550 dark:fill-primary-gray-500 text-xs',\r\n classNames?.labels,\r\n )}\r\n >\r\n {numberFormattingFunction(\r\n values[i],\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </text>\r\n ) : null}\r\n </g>\r\n ))}\r\n </>\r\n );\r\n}\r\n"],"names":["YTicksAndGridLines","props","$","_c","values","y","x1","x2","styles","classNames","prefix","suffix","labelType","showGridLines","labelPos","t0","precision","t1","locale","t2","padZeros","t3","undefined","t4","gridLines","labels","t5","d","i","cn","textAnchor","numberFormattingFunction","map"],"mappings":"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"}
@@ -80,7 +80,7 @@ function je(e, t) {
80
80
  a.onload = () => r(a.result), a.onerror = () => n(a.error), a.onabort = () => n(new Error(`Failed read blob to ${t}`)), a.readAsDataURL(e);
81
81
  });
82
82
  }
83
- const Ve = (e) => je(e, "dataUrl");
83
+ const ze = (e) => je(e, "dataUrl");
84
84
  function T(e, t) {
85
85
  const r = x(t).createElement("img");
86
86
  return r.decoding = "sync", r.loading = "eager", r.src = e, r;
@@ -139,7 +139,7 @@ function I(e, t) {
139
139
  }
140
140
  });
141
141
  }
142
- async function ze(e, t) {
142
+ async function Ve(e, t) {
143
143
  D(e) && (A(e) || _(e) ? await I(e, t) : await Promise.all(
144
144
  ["img", "video"].flatMap((r) => Array.from(e.querySelectorAll(r)).map((n) => I(n, t)))
145
145
  ));
@@ -248,7 +248,7 @@ async function Ge(e, t) {
248
248
  isEnable: (m) => m === "restoreScrollPosition" ? typeof i == "boolean" ? !1 : i[m] ?? !1 : typeof i == "boolean" ? i : i[m] ?? !0,
249
249
  shadowRoots: []
250
250
  };
251
- l.log.time("wait until load"), await ze(e, { timeout: l.timeout, onWarn: l.log.warn }), l.log.timeEnd("wait until load");
251
+ l.log.time("wait until load"), await Ve(e, { timeout: l.timeout, onWarn: l.log.warn }), l.log.timeEnd("wait until load");
252
252
  const { width: c, height: d } = Ye(e, l);
253
253
  return l.width = c, l.height = d, l;
254
254
  }
@@ -496,14 +496,14 @@ function ct(e, t, r, n, a) {
496
496
  }
497
497
  it.forEach(u), r && lt.forEach(u);
498
498
  }
499
- const V = /* @__PURE__ */ new Set([
499
+ const z = /* @__PURE__ */ new Set([
500
500
  "symbol"
501
501
  // test/fixtures/svg.symbol.html
502
502
  ]);
503
- async function z(e, t, r, n, a) {
503
+ async function V(e, t, r, n, a) {
504
504
  if (E(r) && (xe(r) || Ue(r)) || n.filter && !n.filter(r))
505
505
  return;
506
- V.has(t.nodeName) || V.has(r.nodeName) ? n.currentParentNodeStyle = void 0 : n.currentParentNodeStyle = n.currentNodeStyle;
506
+ z.has(t.nodeName) || z.has(r.nodeName) ? n.currentParentNodeStyle = void 0 : n.currentParentNodeStyle = n.currentNodeStyle;
507
507
  const s = await W(r, n, !1, a);
508
508
  n.isEnable("restoreScrollPosition") && ut(e, s), t.appendChild(s);
509
509
  }
@@ -515,9 +515,9 @@ async function H(e, t, r, n) {
515
515
  if (E(s) && Le(s) && typeof s.assignedNodes == "function") {
516
516
  const i = s.assignedNodes();
517
517
  for (let o = 0; o < i.length; o++)
518
- await z(e, t, i[o], r, n);
518
+ await V(e, t, i[o], r, n);
519
519
  } else
520
- await z(e, t, s, r, n);
520
+ await V(e, t, s, r, n);
521
521
  }
522
522
  function ut(e, t) {
523
523
  if (!D(e) || !D(t))
@@ -599,7 +599,7 @@ function mt(e) {
599
599
  case "arrayBuffer":
600
600
  return o.arrayBuffer();
601
601
  case "dataUrl":
602
- return o.blob().then(Ve);
602
+ return o.blob().then(ze);
603
603
  default:
604
604
  return o.text();
605
605
  }
@@ -976,7 +976,7 @@ function Rt(e, t) {
976
976
  features: {
977
977
  copyScrollbar: !1
978
978
  },
979
- filter: (r) => r instanceof Element ? !r.classList.contains("undp-viz-download-button") : !0
979
+ filter: (r) => r instanceof Element ? !r.classList.contains("undp-viz-download-button") && !r.classList.contains("undp-viz-zoom-buttons") : !0
980
980
  }).then((r) => {
981
981
  const n = document.createElement("a");
982
982
  n.download = `${t}.png`, n.href = r, n.click();
@@ -987,4 +987,4 @@ function Rt(e, t) {
987
987
  export {
988
988
  Rt as i
989
989
  };
990
- //# sourceMappingURL=imageDownload-Diofs_vY.js.map
990
+ //# sourceMappingURL=imageDownload-BYsNEtMS.js.map