@undp/data-viz 1.5.8 → 2.0.0

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 (672) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.d.ts +1 -0
  4. package/dist/AreaChart.js +420 -520
  5. package/dist/AreaChart.js.map +1 -1
  6. package/dist/Axis-CRyfcLjc.js +32 -0
  7. package/dist/Axis-CRyfcLjc.js.map +1 -0
  8. package/dist/Axis-DxRV2yMi.cjs +2 -0
  9. package/dist/Axis-DxRV2yMi.cjs.map +1 -0
  10. package/dist/AxisTitle-jeI7am8o.js +29 -0
  11. package/dist/AxisTitle-jeI7am8o.js.map +1 -0
  12. package/dist/AxisTitle-sS5bLLR7.cjs +2 -0
  13. package/dist/AxisTitle-sS5bLLR7.cjs.map +1 -0
  14. package/dist/BarGraph.cjs +1 -1
  15. package/dist/BarGraph.cjs.map +1 -1
  16. package/dist/BarGraph.d.ts +1 -0
  17. package/dist/BarGraph.js +2188 -4045
  18. package/dist/BarGraph.js.map +1 -1
  19. package/dist/BasicStatCard.cjs +1 -1
  20. package/dist/BasicStatCard.cjs.map +1 -1
  21. package/dist/BasicStatCard.d.ts +1 -0
  22. package/dist/BasicStatCard.js +120 -186
  23. package/dist/BasicStatCard.js.map +1 -1
  24. package/dist/BeeSwarmChart.cjs +1 -1
  25. package/dist/BeeSwarmChart.cjs.map +1 -1
  26. package/dist/BeeSwarmChart.d.ts +5 -0
  27. package/dist/BeeSwarmChart.js +501 -1019
  28. package/dist/BeeSwarmChart.js.map +1 -1
  29. package/dist/BiVariateChoroplethMap.cjs +1 -1
  30. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  31. package/dist/BiVariateChoroplethMap.d.ts +3 -0
  32. package/dist/BiVariateChoroplethMap.js +458 -706
  33. package/dist/BiVariateChoroplethMap.js.map +1 -1
  34. package/dist/BulletChart.cjs +1 -1
  35. package/dist/BulletChart.cjs.map +1 -1
  36. package/dist/BulletChart.d.ts +1 -0
  37. package/dist/BulletChart.js +863 -1414
  38. package/dist/BulletChart.js.map +1 -1
  39. package/dist/ButterflyChart.cjs +1 -1
  40. package/dist/ButterflyChart.cjs.map +1 -1
  41. package/dist/ButterflyChart.d.ts +1 -0
  42. package/dist/ButterflyChart.js +474 -684
  43. package/dist/ButterflyChart.js.map +1 -1
  44. package/dist/ChoroplethMap.cjs +1 -1
  45. package/dist/ChoroplethMap.cjs.map +1 -1
  46. package/dist/ChoroplethMap.d.ts +3 -0
  47. package/dist/ChoroplethMap.js +469 -731
  48. package/dist/ChoroplethMap.js.map +1 -1
  49. package/dist/CirclePackingGraph.cjs +1 -1
  50. package/dist/CirclePackingGraph.d.ts +1 -0
  51. package/dist/CirclePackingGraph.js +5 -4
  52. package/dist/CirclePackingGraph.js.map +1 -1
  53. package/dist/ColorLegend.cjs +1 -1
  54. package/dist/ColorLegend.cjs.map +1 -1
  55. package/dist/ColorLegend.js +57 -44
  56. package/dist/ColorLegend.js.map +1 -1
  57. package/dist/ColorLegendWithMouseOver.cjs +1 -1
  58. package/dist/ColorLegendWithMouseOver.cjs.map +1 -1
  59. package/dist/ColorLegendWithMouseOver.js +60 -65
  60. package/dist/ColorLegendWithMouseOver.js.map +1 -1
  61. package/dist/Colors.cjs.map +1 -1
  62. package/dist/Colors.js +44 -430
  63. package/dist/Colors.js.map +1 -1
  64. package/dist/CopyTextButton.cjs +4 -4
  65. package/dist/CopyTextButton.cjs.map +1 -1
  66. package/dist/CopyTextButton.js +537 -455
  67. package/dist/CopyTextButton.js.map +1 -1
  68. package/dist/CsvDownloadButton.cjs +7 -7
  69. package/dist/CsvDownloadButton.cjs.map +1 -1
  70. package/dist/CsvDownloadButton.js +442 -447
  71. package/dist/CsvDownloadButton.js.map +1 -1
  72. package/dist/DataCards.cjs +5 -5
  73. package/dist/DataCards.cjs.map +1 -1
  74. package/dist/DataCards.d.ts +1 -0
  75. package/dist/DataCards.js +488 -581
  76. package/dist/DataCards.js.map +1 -1
  77. package/dist/DataTable.cjs +1 -1
  78. package/dist/DataTable.cjs.map +1 -1
  79. package/dist/DataTable.d.ts +1 -0
  80. package/dist/DataTable.js +183 -326
  81. package/dist/DataTable.js.map +1 -1
  82. package/dist/DifferenceLineChart.cjs +1 -1
  83. package/dist/DifferenceLineChart.cjs.map +1 -1
  84. package/dist/DifferenceLineChart.d.ts +1 -0
  85. package/dist/DifferenceLineChart.js +729 -794
  86. package/dist/DifferenceLineChart.js.map +1 -1
  87. package/dist/DonutChart.cjs +1 -1
  88. package/dist/DonutChart.cjs.map +1 -1
  89. package/dist/DonutChart.d.ts +1 -4
  90. package/dist/DonutChart.js +260 -444
  91. package/dist/DonutChart.js.map +1 -1
  92. package/dist/DotDensityMap.cjs +1 -1
  93. package/dist/DotDensityMap.cjs.map +1 -1
  94. package/dist/DotDensityMap.d.ts +3 -0
  95. package/dist/DotDensityMap.js +388 -582
  96. package/dist/DotDensityMap.js.map +1 -1
  97. package/dist/{DropdownSelect-CtOKZHD0.js → DropdownSelect-BbdPQa2k.js} +1401 -1374
  98. package/dist/DropdownSelect-BbdPQa2k.js.map +1 -0
  99. package/dist/DropdownSelect-Doz3mCrM.cjs +29 -0
  100. package/dist/DropdownSelect-Doz3mCrM.cjs.map +1 -0
  101. package/dist/DualAxisLineChart.cjs +1 -1
  102. package/dist/DualAxisLineChart.cjs.map +1 -1
  103. package/dist/DualAxisLineChart.d.ts +1 -0
  104. package/dist/DualAxisLineChart.js +617 -712
  105. package/dist/DualAxisLineChart.js.map +1 -1
  106. package/dist/DumbbellChart.cjs +1 -1
  107. package/dist/DumbbellChart.cjs.map +1 -1
  108. package/dist/DumbbellChart.d.ts +1 -0
  109. package/dist/DumbbellChart.js +789 -1499
  110. package/dist/DumbbellChart.js.map +1 -1
  111. package/dist/EmptyState-BZo1BbAn.js +15 -0
  112. package/dist/{EmptyState-DdTp-Mdn.js.map → EmptyState-BZo1BbAn.js.map} +1 -1
  113. package/dist/EmptyState-sAEZ_5rU.cjs +2 -0
  114. package/dist/{EmptyState-d8_8SxeW.cjs.map → EmptyState-sAEZ_5rU.cjs.map} +1 -1
  115. package/dist/ExcelDownloadButton.cjs +1 -1
  116. package/dist/ExcelDownloadButton.cjs.map +1 -1
  117. package/dist/ExcelDownloadButton.js +20 -24
  118. package/dist/ExcelDownloadButton.js.map +1 -1
  119. package/dist/FootNote.cjs +1 -1
  120. package/dist/FootNote.cjs.map +1 -1
  121. package/dist/FootNote.js +26 -17
  122. package/dist/FootNote.js.map +1 -1
  123. package/dist/GeoHubCompareMaps.cjs +1 -1
  124. package/dist/GeoHubCompareMaps.cjs.map +1 -1
  125. package/dist/GeoHubCompareMaps.d.ts +1 -0
  126. package/dist/GeoHubCompareMaps.js +264 -354
  127. package/dist/GeoHubCompareMaps.js.map +1 -1
  128. package/dist/GeoHubMap.cjs +1 -1
  129. package/dist/GeoHubMap.cjs.map +1 -1
  130. package/dist/GeoHubMap.d.ts +1 -0
  131. package/dist/GeoHubMap.js +214 -409
  132. package/dist/GeoHubMap.js.map +1 -1
  133. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  134. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
  135. package/dist/GeoHubMapWithLayerSelection.d.ts +1 -0
  136. package/dist/GeoHubMapWithLayerSelection.js +192 -293
  137. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  138. package/dist/GraphContainer-CRqzdKu2.js +78 -0
  139. package/dist/GraphContainer-CRqzdKu2.js.map +1 -0
  140. package/dist/GraphContainer-d8A46BK2.cjs +2 -0
  141. package/dist/GraphContainer-d8A46BK2.cjs.map +1 -0
  142. package/dist/GraphDescription.cjs +1 -1
  143. package/dist/GraphDescription.cjs.map +1 -1
  144. package/dist/GraphDescription.js +23 -17
  145. package/dist/GraphDescription.js.map +1 -1
  146. package/dist/GraphEl-BkyLYXG5.cjs +2 -0
  147. package/dist/GraphEl-BkyLYXG5.cjs.map +1 -0
  148. package/dist/{GraphEl-CqWzvOyr.js → GraphEl-DzRon4cb.js} +184 -202
  149. package/dist/GraphEl-DzRon4cb.js.map +1 -0
  150. package/dist/GraphFooter.cjs +1 -1
  151. package/dist/GraphFooter.cjs.map +1 -1
  152. package/dist/GraphFooter.js +28 -18
  153. package/dist/GraphFooter.js.map +1 -1
  154. package/dist/GraphHeader.cjs +1 -1
  155. package/dist/GraphHeader.cjs.map +1 -1
  156. package/dist/GraphHeader.d.ts +2 -1
  157. package/dist/GraphHeader.js +45 -59
  158. package/dist/GraphHeader.js.map +1 -1
  159. package/dist/GraphTitle.cjs +1 -1
  160. package/dist/GraphTitle.cjs.map +1 -1
  161. package/dist/GraphTitle.js +29 -24
  162. package/dist/GraphTitle.js.map +1 -1
  163. package/dist/GriddedGraphs.cjs +1 -1
  164. package/dist/GriddedGraphs.cjs.map +1 -1
  165. package/dist/GriddedGraphs.d.ts +2 -0
  166. package/dist/GriddedGraphs.js +216 -450
  167. package/dist/GriddedGraphs.js.map +1 -1
  168. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  169. package/dist/GriddedGraphsFromConfig.cjs.map +1 -1
  170. package/dist/GriddedGraphsFromConfig.d.ts +2 -0
  171. package/dist/GriddedGraphsFromConfig.js +22 -36
  172. package/dist/GriddedGraphsFromConfig.js.map +1 -1
  173. package/dist/HeatMap.cjs +1 -1
  174. package/dist/HeatMap.cjs.map +1 -1
  175. package/dist/HeatMap.d.ts +1 -0
  176. package/dist/HeatMap.js +278 -446
  177. package/dist/HeatMap.js.map +1 -1
  178. package/dist/Histogram.cjs +1 -1
  179. package/dist/Histogram.cjs.map +1 -1
  180. package/dist/Histogram.d.ts +1 -0
  181. package/dist/Histogram.js +154 -264
  182. package/dist/Histogram.js.map +1 -1
  183. package/dist/ImageDownloadButton.cjs +1 -1
  184. package/dist/ImageDownloadButton.cjs.map +1 -1
  185. package/dist/ImageDownloadButton.d.ts +2 -1
  186. package/dist/ImageDownloadButton.js +21 -25
  187. package/dist/ImageDownloadButton.js.map +1 -1
  188. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  189. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  190. package/dist/LineChartWithConfidenceInterval.d.ts +1 -0
  191. package/dist/LineChartWithConfidenceInterval.js +674 -825
  192. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  193. package/dist/LinearColorLegend.cjs +1 -1
  194. package/dist/LinearColorLegend.cjs.map +1 -1
  195. package/dist/LinearColorLegend.js +49 -30
  196. package/dist/LinearColorLegend.js.map +1 -1
  197. package/dist/Modal-DGcuAHyK.js +1047 -0
  198. package/dist/Modal-DGcuAHyK.js.map +1 -0
  199. package/dist/Modal-JW_IExO3.cjs +46 -0
  200. package/dist/Modal-JW_IExO3.cjs.map +1 -0
  201. package/dist/MultiGraphDashboard.cjs +1 -1
  202. package/dist/MultiGraphDashboard.cjs.map +1 -1
  203. package/dist/MultiGraphDashboard.d.ts +2 -0
  204. package/dist/MultiGraphDashboard.js +122 -290
  205. package/dist/MultiGraphDashboard.js.map +1 -1
  206. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  207. package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -1
  208. package/dist/MultiGraphDashboardFromConfig.d.ts +2 -0
  209. package/dist/MultiGraphDashboardFromConfig.js +22 -31
  210. package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
  211. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  212. package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
  213. package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -0
  214. package/dist/MultiGraphDashboardWideToLongFormat.js +137 -223
  215. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
  216. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  217. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -1
  218. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -0
  219. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +25 -27
  220. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
  221. package/dist/MultiLineAltChart.cjs +1 -1
  222. package/dist/MultiLineAltChart.cjs.map +1 -1
  223. package/dist/MultiLineAltChart.d.ts +1 -0
  224. package/dist/MultiLineAltChart.js +581 -659
  225. package/dist/MultiLineAltChart.js.map +1 -1
  226. package/dist/MultiLineChart.cjs +1 -1
  227. package/dist/MultiLineChart.cjs.map +1 -1
  228. package/dist/MultiLineChart.d.ts +1 -0
  229. package/dist/MultiLineChart.js +617 -725
  230. package/dist/MultiLineChart.js.map +1 -1
  231. package/dist/ParetoChart.cjs +1 -1
  232. package/dist/ParetoChart.cjs.map +1 -1
  233. package/dist/ParetoChart.d.ts +1 -0
  234. package/dist/ParetoChart.js +531 -635
  235. package/dist/ParetoChart.js.map +1 -1
  236. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  237. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
  238. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +2 -0
  239. package/dist/PerformanceIntensiveMultiGraphDashboard.js +147 -338
  240. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
  241. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  242. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -1
  243. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +2 -0
  244. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +22 -31
  245. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -1
  246. package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
  247. package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -1
  248. package/dist/PerformanceIntensiveScrollStory.d.ts +2 -0
  249. package/dist/PerformanceIntensiveScrollStory.js +93 -114
  250. package/dist/PerformanceIntensiveScrollStory.js.map +1 -1
  251. package/dist/RadarChart.cjs +1 -1
  252. package/dist/RadarChart.cjs.map +1 -1
  253. package/dist/RadarChart.d.ts +1 -0
  254. package/dist/RadarChart.js +426 -575
  255. package/dist/RadarChart.js.map +1 -1
  256. package/dist/ReferenceLine-2XCwHXQ4.js +162 -0
  257. package/dist/ReferenceLine-2XCwHXQ4.js.map +1 -0
  258. package/dist/ReferenceLine-BH0qdf4R.cjs +2 -0
  259. package/dist/ReferenceLine-BH0qdf4R.cjs.map +1 -0
  260. package/dist/RegressionLine-BOTTNSrr.cjs +2 -0
  261. package/dist/RegressionLine-BOTTNSrr.cjs.map +1 -0
  262. package/dist/RegressionLine-DAcY2DjT.js +87 -0
  263. package/dist/RegressionLine-DAcY2DjT.js.map +1 -0
  264. package/dist/SVGDownloadButton.cjs +1 -1
  265. package/dist/SVGDownloadButton.cjs.map +1 -1
  266. package/dist/SVGDownloadButton.js +21 -25
  267. package/dist/SVGDownloadButton.js.map +1 -1
  268. package/dist/SankeyChart.cjs +1 -1
  269. package/dist/SankeyChart.cjs.map +1 -1
  270. package/dist/SankeyChart.d.ts +1 -0
  271. package/dist/SankeyChart.js +665 -854
  272. package/dist/SankeyChart.js.map +1 -1
  273. package/dist/ScatterPlot.cjs +1 -1
  274. package/dist/ScatterPlot.cjs.map +1 -1
  275. package/dist/ScatterPlot.d.ts +1 -0
  276. package/dist/ScatterPlot.js +675 -815
  277. package/dist/ScatterPlot.js.map +1 -1
  278. package/dist/ScrollStory.cjs +1 -1
  279. package/dist/ScrollStory.cjs.map +1 -1
  280. package/dist/ScrollStory.d.ts +2 -0
  281. package/dist/ScrollStory.js +85 -97
  282. package/dist/ScrollStory.js.map +1 -1
  283. package/dist/SimpleLineChart.cjs +1 -1
  284. package/dist/SimpleLineChart.cjs.map +1 -1
  285. package/dist/SimpleLineChart.d.ts +1 -0
  286. package/dist/SimpleLineChart.js +504 -613
  287. package/dist/SimpleLineChart.js.map +1 -1
  288. package/dist/SingleGraphDashboard.cjs +1 -1
  289. package/dist/SingleGraphDashboard.cjs.map +1 -1
  290. package/dist/SingleGraphDashboard.d.ts +3 -1
  291. package/dist/SingleGraphDashboard.js +279 -507
  292. package/dist/SingleGraphDashboard.js.map +1 -1
  293. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  294. package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -1
  295. package/dist/SingleGraphDashboardFromConfig.d.ts +3 -1
  296. package/dist/SingleGraphDashboardFromConfig.js +25 -31
  297. package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
  298. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  299. package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
  300. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +2 -0
  301. package/dist/SingleGraphDashboardGeoHubMaps.js +146 -168
  302. package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
  303. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  304. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -1
  305. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +2 -0
  306. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -21
  307. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -1
  308. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  309. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  310. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +2 -0
  311. package/dist/SingleGraphDashboardThreeDGraphs.js +356 -589
  312. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  313. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  314. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -1
  315. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +2 -0
  316. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +25 -31
  317. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -1
  318. package/dist/SlopeChart.cjs +1 -1
  319. package/dist/SlopeChart.cjs.map +1 -1
  320. package/dist/SlopeChart.d.ts +1 -0
  321. package/dist/SlopeChart.js +539 -573
  322. package/dist/SlopeChart.js.map +1 -1
  323. package/dist/Source-DYMJRrsq.cjs +2 -0
  324. package/dist/Source-DYMJRrsq.cjs.map +1 -0
  325. package/dist/Source-DwTHB8fn.js +78 -0
  326. package/dist/Source-DwTHB8fn.js.map +1 -0
  327. package/dist/Source.cjs +1 -1
  328. package/dist/Source.cjs.map +1 -1
  329. package/dist/Source.js +4 -38
  330. package/dist/Source.js.map +1 -1
  331. package/dist/SparkLine.cjs +1 -1
  332. package/dist/SparkLine.cjs.map +1 -1
  333. package/dist/SparkLine.d.ts +1 -0
  334. package/dist/SparkLine.js +286 -314
  335. package/dist/SparkLine.js.map +1 -1
  336. package/dist/Spinner-D7rnnwnA.js +47 -0
  337. package/dist/Spinner-D7rnnwnA.js.map +1 -0
  338. package/dist/Spinner-DRMBUsX7.cjs +2 -0
  339. package/dist/Spinner-DRMBUsX7.cjs.map +1 -0
  340. package/dist/StatCardFromData.cjs +1 -1
  341. package/dist/StatCardFromData.cjs.map +1 -1
  342. package/dist/StatCardFromData.d.ts +1 -0
  343. package/dist/StatCardFromData.js +163 -243
  344. package/dist/StatCardFromData.js.map +1 -1
  345. package/dist/StripChart.cjs +1 -1
  346. package/dist/StripChart.cjs.map +1 -1
  347. package/dist/StripChart.d.ts +1 -0
  348. package/dist/StripChart.js +665 -983
  349. package/dist/StripChart.js.map +1 -1
  350. package/dist/ThreeDGlobe.cjs +1 -1
  351. package/dist/ThreeDGlobe.cjs.map +1 -1
  352. package/dist/ThreeDGlobe.d.ts +3 -0
  353. package/dist/ThreeDGlobe.js +355 -526
  354. package/dist/ThreeDGlobe.js.map +1 -1
  355. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  356. package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
  357. package/dist/ThresholdColorLegendWithMouseOver.js +96 -126
  358. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
  359. package/dist/Tooltip-4dJo4_AF.cjs +2 -0
  360. package/dist/Tooltip-4dJo4_AF.cjs.map +1 -0
  361. package/dist/Tooltip-CwWUegPB.js +43 -0
  362. package/dist/Tooltip-CwWUegPB.js.map +1 -0
  363. package/dist/TreeMapGraph.cjs +1 -1
  364. package/dist/TreeMapGraph.cjs.map +1 -1
  365. package/dist/TreeMapGraph.d.ts +1 -0
  366. package/dist/TreeMapGraph.js +479 -617
  367. package/dist/TreeMapGraph.js.map +1 -1
  368. package/dist/Types.d.ts +2 -0
  369. package/dist/Typography-DX7PlgQU.cjs +2 -0
  370. package/dist/Typography-DX7PlgQU.cjs.map +1 -0
  371. package/dist/Typography-PxtFcnJb.js +142 -0
  372. package/dist/Typography-PxtFcnJb.js.map +1 -0
  373. package/dist/UnitChart.cjs +1 -1
  374. package/dist/UnitChart.cjs.map +1 -1
  375. package/dist/UnitChart.d.ts +1 -0
  376. package/dist/UnitChart.js +160 -212
  377. package/dist/UnitChart.js.map +1 -1
  378. package/dist/XAxesLabels-D5X8jngD.cjs +2 -0
  379. package/dist/XAxesLabels-D5X8jngD.cjs.map +1 -0
  380. package/dist/XAxesLabels-DNO0KmjL.js +73 -0
  381. package/dist/XAxesLabels-DNO0KmjL.js.map +1 -0
  382. package/dist/XTicksAndGridLines-B6CELS7q.cjs +2 -0
  383. package/dist/XTicksAndGridLines-B6CELS7q.cjs.map +1 -0
  384. package/dist/XTicksAndGridLines-CObVFSm4.js +38 -0
  385. package/dist/XTicksAndGridLines-CObVFSm4.js.map +1 -0
  386. package/dist/YAxesLabels-DcS85Beo.cjs +2 -0
  387. package/dist/YAxesLabels-DcS85Beo.cjs.map +1 -0
  388. package/dist/YAxesLabels-Dnnng49-.js +70 -0
  389. package/dist/YAxesLabels-Dnnng49-.js.map +1 -0
  390. package/dist/YTicksAndGridLines-4pxTRlRK.cjs +2 -0
  391. package/dist/YTicksAndGridLines-4pxTRlRK.cjs.map +1 -0
  392. package/dist/YTicksAndGridLines-Blepl7XF.js +38 -0
  393. package/dist/YTicksAndGridLines-Blepl7XF.js.map +1 -0
  394. package/dist/{band-BEjh2CHI.js → band-CyHaVft5.js} +3 -3
  395. package/dist/{band-BEjh2CHI.js.map → band-CyHaVft5.js.map} +1 -1
  396. package/dist/{band-CAApY4Pd.cjs → band-VYfcZeJ2.cjs} +2 -2
  397. package/dist/{band-CAApY4Pd.cjs.map → band-VYfcZeJ2.cjs.map} +1 -1
  398. package/dist/checkIfMultiple-Y9iKaV_u.js +950 -0
  399. package/dist/checkIfMultiple-Y9iKaV_u.js.map +1 -0
  400. package/dist/checkIfMultiple-wg6hJLXy.cjs +12 -0
  401. package/dist/checkIfMultiple-wg6hJLXy.cjs.map +1 -0
  402. package/dist/customArea-BUhPiPT6.js +163 -0
  403. package/dist/{customArea-B-dWU0zZ.js.map → customArea-BUhPiPT6.js.map} +1 -1
  404. package/dist/customArea-CMF5g-C3.cjs +2 -0
  405. package/dist/{customArea-CK768gCn.cjs.map → customArea-CMF5g-C3.cjs.map} +1 -1
  406. package/dist/delaunay-C1uAf38t.js.map +1 -1
  407. package/dist/delaunay-rcy0HhZi.cjs.map +1 -1
  408. package/dist/{ensureCompleteData-DlmibgaI.js → ensureCompleteData-DNKEGRiP.js} +12 -32
  409. package/dist/{ensureCompleteData-DlmibgaI.js.map → ensureCompleteData-DNKEGRiP.js.map} +1 -1
  410. package/dist/{ensureCompleteData-DkQYPeDa.cjs → ensureCompleteData-I6nYmT8E.cjs} +2 -2
  411. package/dist/{ensureCompleteData-DkQYPeDa.cjs.map → ensureCompleteData-I6nYmT8E.cjs.map} +1 -1
  412. package/dist/{excelDownload-BOA-lskf.js → excelDownload-BEC1AyQW.js} +12 -2
  413. package/dist/{excelDownload-BOA-lskf.js.map → excelDownload-BEC1AyQW.js.map} +1 -1
  414. package/dist/excelDownload-BQpsCa62.cjs.map +1 -1
  415. package/dist/{fetchAndParseData-sapWbnYk.js → fetchAndParseData-BpqkBPQL.js} +15 -28
  416. package/dist/{fetchAndParseData-sapWbnYk.js.map → fetchAndParseData-BpqkBPQL.js.map} +1 -1
  417. package/dist/fetchAndParseData-l5HGMAEs.cjs +16 -0
  418. package/dist/{fetchAndParseData-Ba-_CgxS.cjs.map → fetchAndParseData-l5HGMAEs.cjs.map} +1 -1
  419. package/dist/fetchAndParseData.cjs +1 -1
  420. package/dist/fetchAndParseData.js +1 -1
  421. package/dist/{filterData-9nEcQ-Jp.js → filterData-DsAiFzKY.js} +3 -5
  422. package/dist/{filterData-9nEcQ-Jp.js.map → filterData-DsAiFzKY.js.map} +1 -1
  423. package/dist/{filterData-BoYadk0l.cjs → filterData-T5DQBE9b.cjs} +2 -2
  424. package/dist/{filterData-BoYadk0l.cjs.map → filterData-T5DQBE9b.cjs.map} +1 -1
  425. package/dist/generateRandomString-B5zBiJzS.cjs.map +1 -1
  426. package/dist/generateRandomString-za3IQGfQ.js.map +1 -1
  427. package/dist/{getCentroidCoordinates-Dfk6IqEG.js → getCentroidCoordinates-D7r34N4w.js} +2 -2
  428. package/dist/{getCentroidCoordinates-Dfk6IqEG.js.map → getCentroidCoordinates-D7r34N4w.js.map} +1 -1
  429. package/dist/{getCentroidCoordinates-DxTBqzp2.cjs → getCentroidCoordinates-Dng1HVjO.cjs} +2 -2
  430. package/dist/{getCentroidCoordinates-DxTBqzp2.cjs.map → getCentroidCoordinates-Dng1HVjO.cjs.map} +1 -1
  431. package/dist/getGraphList-BpEWn1Tk.js +227 -0
  432. package/dist/{getGraphList-DuColTJM.js.map → getGraphList-BpEWn1Tk.js.map} +1 -1
  433. package/dist/getGraphList-gf02xgT2.cjs.map +1 -1
  434. package/dist/getJenks-BbngDoBQ.js.map +1 -1
  435. package/dist/getJenks-GYmdwBqm.cjs.map +1 -1
  436. package/dist/getSchema.cjs.map +1 -1
  437. package/dist/getSchema.js +445 -231
  438. package/dist/getSchema.js.map +1 -1
  439. package/dist/getSliderMarks-BmADcPQt.cjs +6 -0
  440. package/dist/getSliderMarks-BmADcPQt.cjs.map +1 -0
  441. package/dist/getSliderMarks-HIDJ0_Cd.js +1033 -0
  442. package/dist/getSliderMarks-HIDJ0_Cd.js.map +1 -0
  443. package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js → getTextColorBasedOnBgColor-CDY808zi.js} +11 -3
  444. package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js.map → getTextColorBasedOnBgColor-CDY808zi.js.map} +1 -1
  445. package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -1
  446. package/dist/{getUniqValue-DiCh_MOD.js → getUniqValue-BKHCm3zE.js} +2 -4
  447. package/dist/{getUniqValue-DiCh_MOD.js.map → getUniqValue-BKHCm3zE.js.map} +1 -1
  448. package/dist/getUniqValue-RViz8tTw.cjs.map +1 -1
  449. package/dist/{imageDownload-Dcci2LEy.js → imageDownload-BX6SILNZ.js} +4 -2
  450. package/dist/{imageDownload-Dcci2LEy.js.map → imageDownload-BX6SILNZ.js.map} +1 -1
  451. package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -1
  452. package/dist/{index-DvVprvy6.js → index-BZQYSqar.js} +7 -7
  453. package/dist/{index-DvVprvy6.js.map → index-BZQYSqar.js.map} +1 -1
  454. package/dist/index-B_sAFsEV.cjs +2 -0
  455. package/dist/{index-BYzIB5V6.cjs.map → index-B_sAFsEV.cjs.map} +1 -1
  456. package/dist/index-BqfRwk1n.js +146 -0
  457. package/dist/index-BqfRwk1n.js.map +1 -0
  458. package/dist/{index-V_JXij1_.js → index-BuwmuDFJ.js} +3 -3
  459. package/dist/{index-V_JXij1_.js.map → index-BuwmuDFJ.js.map} +1 -1
  460. package/dist/index-CHPV5EwG-CTPQjnHt.cjs +84 -0
  461. package/dist/index-CHPV5EwG-CTPQjnHt.cjs.map +1 -0
  462. package/dist/{index-CHPV5EwG-BPSP-7Jg.js → index-CHPV5EwG-Curnpaqc.js} +937 -842
  463. package/dist/index-CHPV5EwG-Curnpaqc.js.map +1 -0
  464. package/dist/index-Cno4Q0YE.cjs +2 -0
  465. package/dist/{index-CQ3e6Ewi.cjs.map → index-Cno4Q0YE.cjs.map} +1 -1
  466. package/dist/{index-tvAyXPPW-DBlMKnNB.js → index-Cw8sCyo_-B2hEKjzG.js} +16 -16
  467. package/dist/{index-tvAyXPPW-DBlMKnNB.js.map → index-Cw8sCyo_-B2hEKjzG.js.map} +1 -1
  468. package/dist/index-Cw8sCyo_-BrHiWiRF.cjs +2 -0
  469. package/dist/index-Cw8sCyo_-BrHiWiRF.cjs.map +1 -0
  470. package/dist/index-CyZ1lmi_.cjs +2 -0
  471. package/dist/{index-D72cOtq7.cjs.map → index-CyZ1lmi_.cjs.map} +1 -1
  472. package/dist/index-D491FEn1.js +184 -0
  473. package/dist/index-D491FEn1.js.map +1 -0
  474. package/dist/index-DG2bgAva.cjs +10 -0
  475. package/dist/index-DG2bgAva.cjs.map +1 -0
  476. package/dist/index-DRXx7m-C.cjs +2 -0
  477. package/dist/index-DRXx7m-C.cjs.map +1 -0
  478. package/dist/index-DoY3Ga3W.cjs +2 -0
  479. package/dist/index-DoY3Ga3W.cjs.map +1 -0
  480. package/dist/index-DxXnJ8Ti.cjs +2 -0
  481. package/dist/index-DxXnJ8Ti.cjs.map +1 -0
  482. package/dist/{index-DG3YrCr5-D3FrrXj8.js → index-Dzc_aaI9-Bb7gobH_.js} +2 -2
  483. package/dist/{index-DG3YrCr5-D3FrrXj8.js.map → index-Dzc_aaI9-Bb7gobH_.js.map} +1 -1
  484. package/dist/{index-DG3YrCr5-v7rayV3N.cjs → index-Dzc_aaI9-BmkfPMyc.cjs} +2 -2
  485. package/dist/{index-DG3YrCr5-v7rayV3N.cjs.map → index-Dzc_aaI9-BmkfPMyc.cjs.map} +1 -1
  486. package/dist/{index-9tDEUqOZ.js → index-GEsywGxz.js} +9 -9
  487. package/dist/index-GEsywGxz.js.map +1 -0
  488. package/dist/index-SKgJALZg.js +99 -0
  489. package/dist/{index-DKCxu1Gh.js.map → index-SKgJALZg.js.map} +1 -1
  490. package/dist/index-leTnKT2q.js +329 -0
  491. package/dist/index-leTnKT2q.js.map +1 -0
  492. package/dist/index.cjs +1 -1
  493. package/dist/index.d.ts +19 -8
  494. package/dist/index.js +13 -13
  495. package/dist/{init-BhZylTFx.js → init-BJFW6EwE.js} +3 -3
  496. package/dist/{init-BhZylTFx.js.map → init-BJFW6EwE.js.map} +1 -1
  497. package/dist/{linear-BVckp9RD.cjs → linear-BwPAspcq.cjs} +2 -2
  498. package/dist/{linear-BVckp9RD.cjs.map → linear-BwPAspcq.cjs.map} +1 -1
  499. package/dist/{linear-DUdu7l2G.js → linear-BwnDd9KF.js} +3 -3
  500. package/dist/{linear-DUdu7l2G.js.map → linear-BwnDd9KF.js.map} +1 -1
  501. package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -1
  502. package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -1
  503. package/dist/{ordinal-BOeNbyae.cjs → ordinal-CrsysVE-.cjs} +2 -2
  504. package/dist/ordinal-CrsysVE-.cjs.map +1 -0
  505. package/dist/{ordinal-w9Lu4Stb.js → ordinal-P77xw8aL.js} +24 -24
  506. package/dist/ordinal-P77xw8aL.js.map +1 -0
  507. package/dist/{pow-e8zx3AQJ.js → pow-DE4c7dbW.js} +3 -3
  508. package/dist/{pow-e8zx3AQJ.js.map → pow-DE4c7dbW.js.map} +1 -1
  509. package/dist/{pow-B5-jkdHU.cjs → pow-DgrUorRi.cjs} +2 -2
  510. package/dist/{pow-B5-jkdHU.cjs.map → pow-DgrUorRi.cjs.map} +1 -1
  511. package/dist/{proxy-CkpFesk1.js → proxy-BxkFHwUw.js} +144 -134
  512. package/dist/proxy-BxkFHwUw.js.map +1 -0
  513. package/dist/proxy-BxvUI_9l.cjs +2 -0
  514. package/dist/proxy-BxvUI_9l.cjs.map +1 -0
  515. package/dist/{removeOutliers-DR48e-18.js → removeOutliers-BqW0sPqj.js} +2 -5
  516. package/dist/{removeOutliers-DR48e-18.js.map → removeOutliers-BqW0sPqj.js.map} +1 -1
  517. package/dist/removeOutliers-WELHHqiI.cjs.map +1 -1
  518. package/dist/{sort-DfK1b0F5.js → sort-BIvMlUH1.js} +5 -5
  519. package/dist/{sort-DfK1b0F5.js.map → sort-BIvMlUH1.js.map} +1 -1
  520. package/dist/{string-CRoCZCYa.cjs → string-C-kRh1bQ.cjs} +2 -2
  521. package/dist/{string-CRoCZCYa.cjs.map → string-C-kRh1bQ.cjs.map} +1 -1
  522. package/dist/{string-B8KlVSPX.js → string-C_xJ4Wg4.js} +3 -3
  523. package/dist/{string-B8KlVSPX.js.map → string-C_xJ4Wg4.js.map} +1 -1
  524. package/dist/string2HTML-CPGr_I5E.cjs +3 -0
  525. package/dist/{string2HTML-z7CwHXcx.cjs.map → string2HTML-CPGr_I5E.cjs.map} +1 -1
  526. package/dist/{string2HTML-oFCROsus.js → string2HTML-DhG75NqA.js} +15 -9
  527. package/dist/{string2HTML-oFCROsus.js.map → string2HTML-DhG75NqA.js.map} +1 -1
  528. package/dist/style.css +1 -1
  529. package/dist/{svgDownload-C2-E3yf2.js → svgDownload-BAoarWNt.js} +4 -2
  530. package/dist/{svgDownload-C2-E3yf2.js.map → svgDownload-BAoarWNt.js.map} +1 -1
  531. package/dist/svgDownload-D9zEGjTF.cjs.map +1 -1
  532. package/dist/{threshold-DFfqcDMa.js → threshold-Bgr20hik.js} +2 -2
  533. package/dist/{threshold-DFfqcDMa.js.map → threshold-Bgr20hik.js.map} +1 -1
  534. package/dist/{time-Byw_jYQ7.cjs → time-CZd5YLSP.cjs} +2 -2
  535. package/dist/{time-Byw_jYQ7.cjs.map → time-CZd5YLSP.cjs.map} +1 -1
  536. package/dist/{time-BzJP5SPC.js → time-DCCfQk3V.js} +3 -3
  537. package/dist/{time-BzJP5SPC.js.map → time-DCCfQk3V.js.map} +1 -1
  538. package/dist/transformData.cjs +1 -1
  539. package/dist/transformData.js +3 -3
  540. package/dist/transformDataForAggregation-CE3bAlHU.js +585 -0
  541. package/dist/{transformDataForAggregation-sBpdlX8n.js.map → transformDataForAggregation-CE3bAlHU.js.map} +1 -1
  542. package/dist/transformDataForAggregation-KXGm6flX.cjs.map +1 -1
  543. package/dist/transformDataForGraphFromFile-BExxcITV.js +14 -0
  544. package/dist/{transformDataForGraphFromFile-ComYvzuz.js.map → transformDataForGraphFromFile-BExxcITV.js.map} +1 -1
  545. package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs → transformDataForGraphFromFile-DaJHQCsL.cjs} +2 -2
  546. package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs.map → transformDataForGraphFromFile-DaJHQCsL.cjs.map} +1 -1
  547. package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -1
  548. package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -1
  549. package/dist/uniqBy-BHy4I8PK.js.map +1 -1
  550. package/dist/uniqBy-O05lp2S5.cjs.map +1 -1
  551. package/dist/{use-in-view-yS6jzJAp.js → use-in-view-Cxa7y1TH.js} +2 -2
  552. package/dist/use-in-view-Cxa7y1TH.js.map +1 -0
  553. package/dist/use-in-view-QcfiW0w3.cjs +2 -0
  554. package/dist/use-in-view-QcfiW0w3.cjs.map +1 -0
  555. package/dist/utils.cjs +1 -1
  556. package/dist/utils.js +8 -8
  557. package/dist/validateSchema.cjs.map +1 -1
  558. package/dist/validateSchema.js +33 -29
  559. package/dist/validateSchema.js.map +1 -1
  560. package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs → x-BBpi7a_7-mTo40uId.cjs} +2 -2
  561. package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs.map → x-BBpi7a_7-mTo40uId.cjs.map} +1 -1
  562. package/dist/{y-D0sAaVii.js → y-BqfogMAB.js} +3 -3
  563. package/dist/{y-D0sAaVii.js.map → y-BqfogMAB.js.map} +1 -1
  564. package/dist/{zoom-QipiAl5W.js → zoom-C9MFjAaV.js} +5 -5
  565. package/dist/{zoom-QipiAl5W.js.map → zoom-C9MFjAaV.js.map} +1 -1
  566. package/dist/zoom-DPw8bba-.cjs +2 -0
  567. package/dist/{zoom-BiMNsz72.cjs.map → zoom-DPw8bba-.cjs.map} +1 -1
  568. package/package.json +9 -8
  569. package/dist/Axis-DE7dSn1_.cjs +0 -2
  570. package/dist/Axis-DE7dSn1_.cjs.map +0 -1
  571. package/dist/Axis-Ddg-seDi.js +0 -43
  572. package/dist/Axis-Ddg-seDi.js.map +0 -1
  573. package/dist/AxisTitle-BmHLMRJZ.js +0 -20
  574. package/dist/AxisTitle-BmHLMRJZ.js.map +0 -1
  575. package/dist/AxisTitle-CK9YeovX.cjs +0 -2
  576. package/dist/AxisTitle-CK9YeovX.cjs.map +0 -1
  577. package/dist/DropdownSelect-CtOKZHD0.js.map +0 -1
  578. package/dist/DropdownSelect-DBDM64B5.cjs +0 -29
  579. package/dist/DropdownSelect-DBDM64B5.cjs.map +0 -1
  580. package/dist/EmptyState-DdTp-Mdn.js +0 -22
  581. package/dist/EmptyState-d8_8SxeW.cjs +0 -2
  582. package/dist/GraphEl-C6yjl1VM.cjs +0 -2
  583. package/dist/GraphEl-C6yjl1VM.cjs.map +0 -1
  584. package/dist/GraphEl-CqWzvOyr.js.map +0 -1
  585. package/dist/Modal-DVVwpKhP.js +0 -1019
  586. package/dist/Modal-DVVwpKhP.js.map +0 -1
  587. package/dist/Modal-tXZlLE5s.cjs +0 -46
  588. package/dist/Modal-tXZlLE5s.cjs.map +0 -1
  589. package/dist/ReferenceLine-CFVBBN__.cjs +0 -2
  590. package/dist/ReferenceLine-CFVBBN__.cjs.map +0 -1
  591. package/dist/ReferenceLine-CfAW3vKJ.js +0 -128
  592. package/dist/ReferenceLine-CfAW3vKJ.js.map +0 -1
  593. package/dist/RegressionLine-C2--oMQq.js +0 -49
  594. package/dist/RegressionLine-C2--oMQq.js.map +0 -1
  595. package/dist/RegressionLine-Dj0GSiAp.cjs +0 -2
  596. package/dist/RegressionLine-Dj0GSiAp.cjs.map +0 -1
  597. package/dist/Spinner-C85UF28E.js +0 -30
  598. package/dist/Spinner-C85UF28E.js.map +0 -1
  599. package/dist/Spinner-DA6Z5E4n.cjs +0 -2
  600. package/dist/Spinner-DA6Z5E4n.cjs.map +0 -1
  601. package/dist/Tooltip-CVCGWyzw.js +0 -46
  602. package/dist/Tooltip-CVCGWyzw.js.map +0 -1
  603. package/dist/Tooltip-De16GWhY.cjs +0 -2
  604. package/dist/Tooltip-De16GWhY.cjs.map +0 -1
  605. package/dist/Typography-Ctgfl1J5.js +0 -140
  606. package/dist/Typography-Ctgfl1J5.js.map +0 -1
  607. package/dist/Typography-k-kOjICQ.cjs +0 -2
  608. package/dist/Typography-k-kOjICQ.cjs.map +0 -1
  609. package/dist/XAxesLabels-Drf7M3YK.cjs +0 -2
  610. package/dist/XAxesLabels-Drf7M3YK.cjs.map +0 -1
  611. package/dist/XAxesLabels-loO78vUO.js +0 -57
  612. package/dist/XAxesLabels-loO78vUO.js.map +0 -1
  613. package/dist/XTicksAndGridLines-Bn9u5gOM.js +0 -56
  614. package/dist/XTicksAndGridLines-Bn9u5gOM.js.map +0 -1
  615. package/dist/XTicksAndGridLines-CCzXIV8d.cjs +0 -2
  616. package/dist/XTicksAndGridLines-CCzXIV8d.cjs.map +0 -1
  617. package/dist/YAxesLabels-DECkMgq8.js +0 -52
  618. package/dist/YAxesLabels-DECkMgq8.js.map +0 -1
  619. package/dist/YAxesLabels-yRFFdx1s.cjs +0 -2
  620. package/dist/YAxesLabels-yRFFdx1s.cjs.map +0 -1
  621. package/dist/YTicksAndGridLines-B6ah7CRf.js +0 -56
  622. package/dist/YTicksAndGridLines-B6ah7CRf.js.map +0 -1
  623. package/dist/YTicksAndGridLines-DBDuz6vb.cjs +0 -2
  624. package/dist/YTicksAndGridLines-DBDuz6vb.cjs.map +0 -1
  625. package/dist/checkIfMultiple-BXbHUCWM.cjs +0 -12
  626. package/dist/checkIfMultiple-BXbHUCWM.cjs.map +0 -1
  627. package/dist/checkIfMultiple-ChTJk2Tk.js +0 -912
  628. package/dist/checkIfMultiple-ChTJk2Tk.js.map +0 -1
  629. package/dist/customArea-B-dWU0zZ.js +0 -175
  630. package/dist/customArea-CK768gCn.cjs +0 -2
  631. package/dist/fetchAndParseData-Ba-_CgxS.cjs +0 -16
  632. package/dist/getGraphList-DuColTJM.js +0 -265
  633. package/dist/getSliderMarks-9cNoRkDx.js +0 -1023
  634. package/dist/getSliderMarks-9cNoRkDx.js.map +0 -1
  635. package/dist/getSliderMarks-CRIbTGYV.cjs +0 -6
  636. package/dist/getSliderMarks-CRIbTGYV.cjs.map +0 -1
  637. package/dist/index-37q0ULNQ.js +0 -430
  638. package/dist/index-37q0ULNQ.js.map +0 -1
  639. package/dist/index-9tDEUqOZ.js.map +0 -1
  640. package/dist/index-BW8iNx7E.cjs +0 -10
  641. package/dist/index-BW8iNx7E.cjs.map +0 -1
  642. package/dist/index-BW_-wD2k.cjs +0 -2
  643. package/dist/index-BW_-wD2k.cjs.map +0 -1
  644. package/dist/index-BYzIB5V6.cjs +0 -2
  645. package/dist/index-BmCqpO1B.js +0 -342
  646. package/dist/index-BmCqpO1B.js.map +0 -1
  647. package/dist/index-CHPV5EwG-BPSP-7Jg.js.map +0 -1
  648. package/dist/index-CHPV5EwG-DDoeWRVt.cjs +0 -44
  649. package/dist/index-CHPV5EwG-DDoeWRVt.cjs.map +0 -1
  650. package/dist/index-CNvov0eg.js +0 -122
  651. package/dist/index-CNvov0eg.js.map +0 -1
  652. package/dist/index-CQ3e6Ewi.cjs +0 -2
  653. package/dist/index-CVlCtJbC.cjs +0 -2
  654. package/dist/index-CVlCtJbC.cjs.map +0 -1
  655. package/dist/index-CoZbeNM9.cjs +0 -2
  656. package/dist/index-CoZbeNM9.cjs.map +0 -1
  657. package/dist/index-D72cOtq7.cjs +0 -2
  658. package/dist/index-DKCxu1Gh.js +0 -77
  659. package/dist/index-tvAyXPPW-DPOG-C2i.cjs +0 -2
  660. package/dist/index-tvAyXPPW-DPOG-C2i.cjs.map +0 -1
  661. package/dist/ordinal-BOeNbyae.cjs.map +0 -1
  662. package/dist/ordinal-w9Lu4Stb.js.map +0 -1
  663. package/dist/proxy-BHRoeZgd.cjs +0 -2
  664. package/dist/proxy-BHRoeZgd.cjs.map +0 -1
  665. package/dist/proxy-CkpFesk1.js.map +0 -1
  666. package/dist/string2HTML-z7CwHXcx.cjs +0 -3
  667. package/dist/transformDataForAggregation-sBpdlX8n.js +0 -755
  668. package/dist/transformDataForGraphFromFile-ComYvzuz.js +0 -24
  669. package/dist/use-in-view-sQJZ_xDO.cjs +0 -2
  670. package/dist/use-in-view-sQJZ_xDO.cjs.map +0 -1
  671. package/dist/use-in-view-yS6jzJAp.js.map +0 -1
  672. package/dist/zoom-BiMNsz72.cjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ParetoChart.js","sources":["../src/Components/Graphs/ParetoChart/Graph.tsx","../src/Components/Graphs/ParetoChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleBand, scaleLinear } from 'd3-scale';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n ParetoChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\n\r\ninterface Props {\r\n data: ParetoChartDataType[];\r\n barColor: string;\r\n lineColor: string;\r\n axisTitles: [string, string];\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n barPadding: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n noOfTicks: number;\r\n lineSuffix: string;\r\n barSuffix: string;\r\n linePrefix: string;\r\n showValues: boolean;\r\n barPrefix: string;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n naLabel: string;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n}\r\ninterface DataFormattedType {\r\n id: string;\r\n label: number | string;\r\n line?: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n lineColor,\r\n axisTitles,\r\n sameAxes,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n showValues,\r\n onSeriesMouseOver,\r\n barPadding,\r\n truncateBy,\r\n showLabels,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n lineSuffix,\r\n barSuffix,\r\n linePrefix,\r\n barPrefix,\r\n curveType,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n showAxisLabels,\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 curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin + 50,\r\n right: rightMargin + 65,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = data.map((d, i) => ({ ...d, id: `${i}` }));\r\n const x = scaleBand()\r\n .domain(dataWithId.map(d => `${d.id}`))\r\n .range([0, graphWidth])\r\n .paddingInner(barPadding);\r\n const minParam1 =\r\n Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape = line<DataFormattedType>()\r\n .defined(d => !checkIfNullOrUndefined(d.line))\r\n .x(d => (x(`${d.id}`) as number) + x.bandwidth() / 2)\r\n .y(d => y2(d.line as number))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfTicks);\r\n const y2Ticks = y2.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: barColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: barColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, barPrefix, barSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: barColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: barColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[0].length > 100\r\n ? `${axisTitles[0].substring(0, 100)}...`\r\n : axisTitles[0]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, linePrefix, lineSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[1].length > 100\r\n ? `${axisTitles[1].substring(0, 100)}...`\r\n : axisTitles[1]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <Axis\r\n y1={sameAxes ? y1(0) : graphHeight}\r\n y2={sameAxes ? y1(0) : graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, i) => {\r\n return (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 1,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: d.bar ? (d.bar > 0 ? y1(d.bar) : y1(0)) : 0,\r\n height: d.bar ? Math.abs(y1(d.bar) - y1(0)) : 0,\r\n opacity: 1,\r\n fill: barColor,\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 attrY: y1(0),\r\n height: 0,\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n x={x(`${i}`)}\r\n width={x.bandwidth()}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.bar) ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n attrY: y1(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n opacity: 0,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: y1(d.bar || 0),\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\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={d.bar ? (d.bar >= 0 ? '-5px' : '1em') : '-5px'}\r\n >\r\n {numberFormattingFunction(d.bar, naLabel, precision, barPrefix, barSuffix)}\r\n </motion.text>\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={graphHeight + 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 </motion.g>\r\n );\r\n })}\r\n <motion.path\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n d: lineShape(dataWithId.map(d => ({ ...d, line: 0 }))) as string,\r\n opacity: 0,\r\n stroke: lineColor,\r\n },\r\n whileInView: {\r\n d: lineShape(dataWithId) as string,\r\n opacity: 1,\r\n stroke: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n fill: 'none',\r\n strokeWidth: 2,\r\n }}\r\n />\r\n {dataWithId.map((d, i) => (\r\n <g key={i}>\r\n {!checkIfNullOrUndefined(d.line) ? (\r\n <g\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.circle\r\n exit={{\r\n cy: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n cy: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n cy: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n cx={(x(d.id) as number) + x.bandwidth() / 2}\r\n r={\r\n graphWidth / dataWithId.length < 5\r\n ? 0\r\n : graphWidth / dataWithId.length < 20\r\n ? 2\r\n : 4\r\n }\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n y: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n variants={{\r\n initial: {\r\n y: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n y: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='-5px'\r\n >\r\n {numberFormattingFunction(\r\n d.line,\r\n naLabel,\r\n precision,\r\n linePrefix,\r\n lineSuffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\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 <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n Languages,\r\n ParetoChartDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ParetoChartDataType[];\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 of the bars */\r\n barColor?: string;\r\n /** Color of the line */\r\n lineColor?: 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\r\n // Values and Ticks\r\n /** Suffix for values of the lines */\r\n lineSuffix?: string;\r\n /** Suffix for values of the bars */\r\n barSuffix?: string;\r\n /** Prefix for values of the lines */\r\n linePrefix?: string;\r\n /** Prefix for values of the bars */\r\n barPrefix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\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 /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Enables same axis for bars and line */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Title for the line axis */\r\n lineAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function ParetoChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n lineColor = Colors.light.categoricalColors.colors[1],\r\n barColor = Colors.light.categoricalColors.colors[0],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n lineAxisTitle = 'Line chart',\r\n barAxisTitle = 'Bar graph',\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n barPadding = 0.25,\r\n truncateBy = 999,\r\n showLabels = true,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n showValues = true,\r\n noOfTicks = 5,\r\n lineSuffix = '',\r\n barSuffix = '',\r\n linePrefix = '',\r\n barPrefix = '',\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showColorScale = true,\r\n showAxisLabels = true,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n width ? 'w-fit' : 'w-full',\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a pareto chart that shows a variable as bars and another as line chart.${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\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.current : 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 <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {!showColorScale ? null : (\r\n <ColorLegend\r\n colorDomain={[barAxisTitle, lineAxisTitle]}\r\n colors={[\r\n barColor || Colors[theme].categoricalColors.colors[0],\r\n lineColor || Colors[theme].categoricalColors.colors[1],\r\n ]}\r\n colorLegendTitle={colorLegendTitle}\r\n showNAColor={false}\r\n />\r\n )}\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Graph area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColor={lineColor}\r\n barColor={barColor}\r\n width={width || svgWidth}\r\n height={Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}\r\n truncateBy={truncateBy}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n axisTitles={[barAxisTitle, lineAxisTitle]}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n barPadding={barPadding}\r\n showLabels={showLabels}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n noOfTicks={noOfTicks}\r\n lineSuffix={lineSuffix}\r\n barSuffix={barSuffix}\r\n linePrefix={linePrefix}\r\n barPrefix={barPrefix}\r\n curveType={curveType}\r\n showValues={showValues}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showAxisLabels={showAxisLabels}\r\n />\r\n ) : null}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["Graph","props","data","width","height","barColor","lineColor","axisTitles","sameAxes","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","showValues","onSeriesMouseOver","barPadding","truncateBy","showLabels","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","noOfTicks","lineSuffix","barSuffix","linePrefix","barPrefix","curveType","styles","classNames","animate","precision","customLayers","naLabel","showAxisLabels","svgRef","useRef","isInView","useInView","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","margin","graphWidth","graphHeight","dataWithId","d","i","x","scaleBand","minParam1","minParam2","maxParam1","maxParam2","minParam","maxParam","y1","scaleLinear","y2","lineShape","line","checkIfNullOrUndefined","y1Ticks","y2Ticks","jsxs","Fragment","jsx","motion","cn","numberFormattingFunction","Axis","AxisTitle","AnimatePresence","event","isEqual","XAxesLabels","Tooltip","Modal","string2HTML","ParetoChart","graphTitle","sources","graphDescription","footNote","padding","Colors","backgroundColor","lineAxisTitle","barAxisTitle","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","useEffect","resizeObserver","entries","GraphHeader","EmptyState","ColorLegend","GraphFooter"],"mappings":"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"}
1
+ {"version":3,"file":"ParetoChart.js","sources":["../src/Components/Graphs/ParetoChart/Graph.tsx","../src/Components/Graphs/ParetoChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleBand, scaleLinear } from 'd3-scale';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n ParetoChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\n\r\ninterface Props {\r\n data: ParetoChartDataType[];\r\n barColor: string;\r\n lineColor: string;\r\n axisTitles: [string, string];\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n barPadding: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n noOfTicks: number;\r\n lineSuffix: string;\r\n barSuffix: string;\r\n linePrefix: string;\r\n showValues: boolean;\r\n barPrefix: string;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n naLabel: string;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n}\r\ninterface DataFormattedType {\r\n id: string;\r\n label: number | string;\r\n line?: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n lineColor,\r\n axisTitles,\r\n sameAxes,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n showValues,\r\n onSeriesMouseOver,\r\n barPadding,\r\n truncateBy,\r\n showLabels,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n lineSuffix,\r\n barSuffix,\r\n linePrefix,\r\n barPrefix,\r\n curveType,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n showAxisLabels,\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 curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin + 50,\r\n right: rightMargin + 65,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = data.map((d, i) => ({ ...d, id: `${i}` }));\r\n const x = scaleBand()\r\n .domain(dataWithId.map(d => `${d.id}`))\r\n .range([0, graphWidth])\r\n .paddingInner(barPadding);\r\n const minParam1 =\r\n Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape = line<DataFormattedType>()\r\n .defined(d => !checkIfNullOrUndefined(d.line))\r\n .x(d => (x(`${d.id}`) as number) + x.bandwidth() / 2)\r\n .y(d => y2(d.line as number))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfTicks);\r\n const y2Ticks = y2.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: barColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: barColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, barPrefix, barSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: barColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: barColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[0].length > 100\r\n ? `${axisTitles[0].substring(0, 100)}...`\r\n : axisTitles[0]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, linePrefix, lineSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[1].length > 100\r\n ? `${axisTitles[1].substring(0, 100)}...`\r\n : axisTitles[1]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <Axis\r\n y1={sameAxes ? y1(0) : graphHeight}\r\n y2={sameAxes ? y1(0) : graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, i) => {\r\n return (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 1,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: d.bar ? (d.bar > 0 ? y1(d.bar) : y1(0)) : 0,\r\n height: d.bar ? Math.abs(y1(d.bar) - y1(0)) : 0,\r\n opacity: 1,\r\n fill: barColor,\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 attrY: y1(0),\r\n height: 0,\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n x={x(`${i}`)}\r\n width={x.bandwidth()}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.bar) ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n attrY: y1(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n opacity: 0,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: y1(d.bar || 0),\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\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={d.bar ? (d.bar >= 0 ? '-5px' : '1em') : '-5px'}\r\n >\r\n {numberFormattingFunction(d.bar, naLabel, precision, barPrefix, barSuffix)}\r\n </motion.text>\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={graphHeight + 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 </motion.g>\r\n );\r\n })}\r\n <motion.path\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n d: lineShape(dataWithId.map(d => ({ ...d, line: 0 }))) as string,\r\n opacity: 0,\r\n stroke: lineColor,\r\n },\r\n whileInView: {\r\n d: lineShape(dataWithId) as string,\r\n opacity: 1,\r\n stroke: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n fill: 'none',\r\n strokeWidth: 2,\r\n }}\r\n />\r\n {dataWithId.map((d, i) => (\r\n <g key={i}>\r\n {!checkIfNullOrUndefined(d.line) ? (\r\n <g\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.circle\r\n exit={{\r\n cy: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n cy: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n cy: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n cx={(x(d.id) as number) + x.bandwidth() / 2}\r\n r={\r\n graphWidth / dataWithId.length < 5\r\n ? 0\r\n : graphWidth / dataWithId.length < 20\r\n ? 2\r\n : 4\r\n }\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n y: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n variants={{\r\n initial: {\r\n y: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n y: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='-5px'\r\n >\r\n {numberFormattingFunction(\r\n d.line,\r\n naLabel,\r\n precision,\r\n linePrefix,\r\n lineSuffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\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 <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\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 { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n Languages,\r\n ParetoChartDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ParetoChartDataType[];\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 of the bars */\r\n barColor?: string;\r\n /** Color of the line */\r\n lineColor?: 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\r\n // Values and Ticks\r\n /** Suffix for values of the lines */\r\n lineSuffix?: string;\r\n /** Suffix for values of the bars */\r\n barSuffix?: string;\r\n /** Prefix for values of the lines */\r\n linePrefix?: string;\r\n /** Prefix for values of the bars */\r\n barPrefix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\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 /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Enables same axis for bars and line */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Title for the line axis */\r\n lineAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function ParetoChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n lineColor = Colors.light.categoricalColors.colors[1],\r\n barColor = Colors.light.categoricalColors.colors[0],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n lineAxisTitle = 'Line chart',\r\n barAxisTitle = 'Bar graph',\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n barPadding = 0.25,\r\n truncateBy = 999,\r\n showLabels = true,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n showValues = true,\r\n noOfTicks = 5,\r\n lineSuffix = '',\r\n barSuffix = '',\r\n linePrefix = '',\r\n barPrefix = '',\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showColorScale = true,\r\n showAxisLabels = true,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n 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 {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {!showColorScale ? null : (\r\n <ColorLegend\r\n colorDomain={[barAxisTitle, lineAxisTitle]}\r\n colors={[\r\n barColor || Colors[theme].categoricalColors.colors[0],\r\n lineColor || Colors[theme].categoricalColors.colors[1],\r\n ]}\r\n colorLegendTitle={colorLegendTitle}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColor={lineColor}\r\n barColor={barColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n truncateBy={truncateBy}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n axisTitles={[barAxisTitle, lineAxisTitle]}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n barPadding={barPadding}\r\n showLabels={showLabels}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n noOfTicks={noOfTicks}\r\n lineSuffix={lineSuffix}\r\n barSuffix={barSuffix}\r\n linePrefix={linePrefix}\r\n barPrefix={barPrefix}\r\n curveType={curveType}\r\n showValues={showValues}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showAxisLabels={showAxisLabels}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","barColor","lineColor","axisTitles","sameAxes","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","showValues","onSeriesMouseOver","barPadding","truncateBy","showLabels","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","noOfTicks","lineSuffix","barSuffix","linePrefix","barPrefix","curveType","styles","classNames","animate","precision","customLayers","naLabel","showAxisLabels","svgRef","useRef","t0","amount","once","isInView","useInView","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","t2","t3","top","bottom","left","right","margin","graphWidth","graphHeight","T0","T1","t10","t11","t12","t13","t14","t15","t16","t4","t5","t6","t7","t8","t9","graphObjectValues","xAxis","axis","labels","yAxis","gridLines","title","dataWithId","map","_temp","x","scaleBand","domain","_temp2","range","paddingInner","minParam1","Math","min","_temp3","filter","_temp4","Infinity","_temp5","_temp6","_temp7","_temp8","minParam2","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","maxParam1","max","_temp13","_temp14","_temp15","_temp16","maxParam2","_temp17","_temp18","_temp19","_temp20","minParam","maxParam","y1","scaleLinear","nice","y2","lineShape","line","defined","_temp21","d_22","d","id","bandwidth","y","d_23","y1Ticks","ticks","y2Ticks","motion","svg","t17","t18","t19","t20","stroke","t21","jsx","Axis","t22","AxisTitle","fill","length","substring","d_24","i_0","strokeWidth","cn","textAnchor","numberFormattingFunction","i","t23","t24","t25","t26","t27","t28","t29","t30","d_25","i_1","t31","t32","t33","t34","_temp22","_temp23","AnimatePresence","d_28","i_2","jsxs","event","clientY","clientX","isEqual","event_0","initial","attrY","opacity","whileInView","bar","abs","transition","duration","checkIfNullOrUndefined","XAxesLabels","label","t35","t36","Symbol","for","_temp24","d_30","i_3","event_1","event_2","cy","_temp25","_temp26","Tooltip","Modal","__html","string2HTML","Fragment","d_32","layer","d_31","position","d_29","d_27","d_26","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","d_0","ParetoChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","lineAxisTitle","barAxisTitle","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","graphContainer","t37","description","GraphHeader","t38","EmptyState","ColorLegend","colorLegend","GraphArea","t39","footnote","source","GraphFooter","t40","GraphContainer"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-CHPV5EwG-DDoeWRVt.cjs"),o=require("react"),I=require("./index-D72cOtq7.cjs"),j=require("./index-BS2TADPj.cjs"),b=require("./DropdownSelect-DBDM64B5.cjs"),z=require("./checkIfMultiple-BXbHUCWM.cjs"),L=require("./SingleGraphDashboard.cjs"),U=require("./SingleGraphDashboardThreeDGraphs.cjs"),Z=require("./SingleGraphDashboardGeoHubMaps.cjs"),p=require("./fetchAndParseData-Ba-_CgxS.cjs"),J=require("./getUniqValue-RViz8tTw.cjs"),B=require("./GraphHeader.cjs"),k=require("./filterData-BoYadk0l.cjs"),V=require("./transformDataForSelect-YmStusCI.cjs"),w=y=>y.map(a=>a.columnWidth||1).reduce((a,h)=>a+h,0),K=["barChart","choroplethMap","biVariateChoroplethMap","circlePacking","treeMap"];function Q(y){const{dashboardID:C,dashboardLayout:s,dataSettings:a,filters:h,debugMode:c,theme:g="light",readableHeader:T,dataFilters:R,noOfFiltersPerRow:v=4,filterPosition:F,uiMode:d="normal",graphStyles:S,graphClassNames:D}=y,[m,H]=o.useState(void 0),[f,q]=o.useState(void 0),[u,E]=o.useState([]),A=["threeDGlobe"],N=["geoHubCompareMap","geoHubMap","geoHubMapWithLayerSelection"],G=o.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]),O=o.useMemo(()=>!f||u.length===0?f:f.filter(l=>u.every(e=>e.value&&j.flattenDeep([e.value]).length>0?I.intersection(j.flattenDeep([l[e.filter]]),j.flattenDeep([e.value]).map(i=>i.value)).length>0:!0)),[u,f]);o.useEffect(()=>{H(O)},[O]);const M=o.useCallback(async()=>{if(a)try{const l=await(a.dataURL?typeof a.dataURL=="string"?a.fileType==="json"?p.fetchAndParseJSON(a.dataURL,a.columnsToArray,a.dataTransformation,c):a.fileType==="api"?p.fetchAndTransformDataFromAPI(a.dataURL,a.apiHeaders,a.columnsToArray,a.dataTransformation,c):p.fetchAndParseCSV(a.dataURL,a.dataTransformation,a.columnsToArray,c,a.delimiter,!0):p.fetchAndParseMultipleDataSources(a.dataURL,a.idColumnTitle):p.transformColumnsToArray(a.data,a.columnsToArray));q(l);const e=(h||[]).map(i=>({filter:i.column,label:i.label||`Filter by ${i.column}`,singleSelect:i.singleSelect,clearable:i.clearable,defaultValue:V.transformDefaultValue(i.defaultValue),value:V.transformDefaultValue(i.defaultValue),availableValues:J.getUniqValue(l,i.column).filter(n=>!i.excludeValues?.includes(`${n}`)).map(n=>({value:n,label:n})),allowSelectAll:i.allowSelectAll,width:i.width}));E(e)}catch(t){console.error("Data fetching error:",t)}},[a,h,c]);o.useEffect(()=>{M()},[M]);const x=o.useCallback((t,l)=>{E(e=>e.map(i=>i.filter===t?{...i,value:l}:i))},[]);return r.jsxRuntimeExports.jsx("div",{className:`${g||"light"} flex grow`,dir:s.language==="he"||s.language==="ar"?"rtl":void 0,children:r.jsxRuntimeExports.jsx("div",{className:`${s.backgroundColor?s.backgroundColor===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto gap-4 flex flex-col w-full grow h-inherit ${s.language||"en"}`,style:{...s.backgroundColor&&s.backgroundColor!==!0?{backgroundColor:s.backgroundColor}:{}},id:C,children:r.jsxRuntimeExports.jsx("div",{style:{padding:s.backgroundColor?s.padding||"1rem":s.padding||0,flexGrow:1,display:"flex"},children:r.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[s.title||s.description?r.jsxRuntimeExports.jsx(B.GraphHeader,{graphTitle:s.title,graphDescription:s.description,isDashboard:!0}):null,r.jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap"},children:[u.length!==0?r.jsxRuntimeExports.jsx("div",{style:{width:F==="side"?"280px":"100%",flexGrow:1,flexShrink:0},children:r.jsxRuntimeExports.jsx("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap",alignItems:"flex-start",width:"100%",position:"sticky",top:"1rem"},children:u?.map((t,l)=>r.jsxRuntimeExports.jsxs("div",{style:{width:t.width||`calc(${100/v}% - ${(v-1)/v}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[r.jsxRuntimeExports.jsx(z.f,{className:"mb-2",children:t.label}),t.singleSelect?r.jsxRuntimeExports.jsx(b.Za,{options:t.availableValues,isClearable:t.clearable===void 0?!0:t.clearable,size:"sm",variant:d,isMulti:!1,isSearchable:!0,filterOption:b.Hu(G),onChange:e=>{x(t.filter,e)},defaultValue:t.defaultValue,value:t.value}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(b.Za,{options:t.availableValues,isMulti:!0,size:"sm",isClearable:t.clearable===void 0?!0:t.clearable,variant:d,isSearchable:!0,controlShouldRenderValue:!0,closeMenuOnSelect:!1,hideSelectedOptions:!1,filterOption:b.Hu(G),onChange:e=>{x(t.filter,e)},value:t.value,defaultValue:t.defaultValue}),t.allowSelectAll?r.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{x(t.filter,t.availableValues)},children:"Select all options"}):null]})]},l))})}):null,r.jsxRuntimeExports.jsx("div",{style:{width:F==="side"?"calc(100% - 280px - 1rem)":"100%",minWidth:"280px",flexGrow:1,display:"flex",gap:"1rem",flexWrap:"wrap",flexShrink:"0"},children:s.rows.map((t,l)=>r.jsxRuntimeExports.jsx("div",{style:{display:"flex",gap:"1rem",alignItems:"stretch",minHeight:`${t.height||0}px`,height:"auto",width:"100%",flexWrap:"wrap"},children:t.columns.map((e,i)=>r.jsxRuntimeExports.jsx("div",{className:"flex bg-transparent h-inherit grow min-w-60",style:{width:`calc(${100*(e.columnWidth||1)/w(t.columns)}% - ${(w(t.columns)-(e.columnWidth||1))/w(t.columns)}rem)`,minHeight:"inherit"},children:A.includes(e.graphType)?r.jsxRuntimeExports.jsx(U.SingleGraphDashboardThreeDGraphs,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||S,classNames:e.settings?.classNames||D,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||s.language,theme:e.settings?.theme||g},dataSettings:{data:m?k.filterData(m,R||[]):void 0},dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:c,readableHeader:T||[]}):N.includes(e.graphType)?r.jsxRuntimeExports.jsx(Z.SingleGraphDashboardGeoHubMaps,{graphType:e.graphType,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||S,classNames:e.settings?.classNames||D,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||s.language,theme:e.settings?.theme||g},debugMode:c}):r.jsxRuntimeExports.jsx(L.SingleGraphDashboard,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||S,classNames:e.settings?.classNames||D,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||s.language,theme:e.settings?.theme||g},dataSettings:{data:m?k.filterData(m,R||[]):void 0},updateFilters:e.attachedFilter&&K.indexOf(e.graphType)!==-1&&u.findIndex(n=>n.filter===e.attachedFilter)!==-1?n=>{const W=u.findIndex($=>$.filter===e.attachedFilter),P=n?u[W].singleSelect?{value:n,label:n}:[{value:n,label:n}]:void 0;x(e.attachedFilter,P)}:void 0,dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:c,readableHeader:T||[]})},i))},l))})]})]})})})})}exports.PerformanceIntensiveMultiGraphDashboard=Q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-CTPQjnHt.cjs"),l=require("react"),L=require("./index-CyZ1lmi_.cjs"),j=require("./index-BS2TADPj.cjs"),b=require("./DropdownSelect-Doz3mCrM.cjs"),U=require("./checkIfMultiple-wg6hJLXy.cjs"),$=require("./SingleGraphDashboard.cjs"),I=require("./SingleGraphDashboardThreeDGraphs.cjs"),J=require("./SingleGraphDashboardGeoHubMaps.cjs"),p=require("./fetchAndParseData-l5HGMAEs.cjs"),B=require("./getUniqValue-RViz8tTw.cjs"),K=require("./GraphHeader.cjs"),M=require("./filterData-T5DQBE9b.cjs"),q=require("./transformDataForSelect-YmStusCI.cjs"),Q=require("./GraphContainer-d8A46BK2.cjs"),T=v=>v.map(a=>a.columnWidth||1).reduce((a,g)=>a+g,0),X=["barChart","choroplethMap","biVariateChoroplethMap","circlePacking","treeMap"];function Y(v){const{dashboardID:w,dashboardLayout:r,dataSettings:a,filters:g,debugMode:o,theme:m="light",readableHeader:C,dataFilters:E,noOfFiltersPerRow:S=4,filterPosition:R,uiMode:d="normal",graphStyles:D,graphClassNames:y}=v,[f,F]=l.useState(void 0),[h,A]=l.useState(void 0),[n,O]=l.useState([]),N=["threeDGlobe"],H=["geoHubCompareMap","geoHubMap","geoHubMapWithLayerSelection"],G={ignoreCase:!0,ignoreAccents:!0,trim:!0},V=l.useEffectEvent(()=>{const t=(g||[]).map(s=>({filter:s.column,label:s.label||`Filter by ${s.column}`,singleSelect:s.singleSelect,clearable:s.clearable,defaultValue:q.transformDefaultValue(s.defaultValue),value:q.transformDefaultValue(s.defaultValue),availableValues:B.getUniqValue(h,s.column).filter(e=>!s.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})),allowSelectAll:s.allowSelectAll,width:s.width}));O(t)}),k=l.useEffectEvent(()=>{if(!h||n.length===0)F(h);else{const t=h.filter(s=>n.every(e=>e.value&&j.flattenDeep([e.value]).length>0?L.intersection(j.flattenDeep([s[e.filter]]),j.flattenDeep([e.value]).map(u=>u.value)).length>0:!0));F(t)}});l.useEffect(()=>{k()},[n,h]),l.useEffect(()=>{(async()=>{try{const s=a.dataURL?typeof a.dataURL=="string"?a.fileType==="json"?await p.fetchAndParseJSON(a.dataURL,a.columnsToArray,a.dataTransformation,o):a.fileType==="api"?await p.fetchAndTransformDataFromAPI(a.dataURL,a.apiHeaders,a.columnsToArray,a.dataTransformation,o):await p.fetchAndParseCSV(a.dataURL,a.dataTransformation,a.columnsToArray,o,a.delimiter,!0):await p.fetchAndParseMultipleDataSources(a.dataURL,a.idColumnTitle):await p.transformColumnsToArray(a.data,a.columnsToArray);A(s)}catch(s){console.error("Data fetching error:",s)}})(),V()},[a,o]),l.useEffect(()=>{V()},[g]);const x=(t,s)=>{O(e=>e.map(u=>u.filter===t?{...u,value:s}:u))};return i.jsxRuntimeExports.jsxs(Q.GraphContainer,{id:w,"aria-label":"This is a dashboard",backgroundColor:r.backgroundColor??!1,theme:m||"light",language:r.language||"en",padding:r.padding,children:[r.title||r.description?i.jsxRuntimeExports.jsx(K.GraphHeader,{graphTitle:r.title,graphDescription:r.description,isDashboard:!0}):null,i.jsxRuntimeExports.jsxs("div",{className:"flex gap-4 flex-wrap",children:[n.length!==0?i.jsxRuntimeExports.jsx("div",{className:"flex-grow flex-shrink-0",style:{width:R==="side"?"280px":"100%"},children:i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-start gap-4 w-full sticky top-4",children:n?.map((t,s)=>i.jsxRuntimeExports.jsxs("div",{style:{width:t.width||`calc(${100/S}% - ${(S-1)/S}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[i.jsxRuntimeExports.jsx(U.b,{className:"mb-2",children:t.label}),t.singleSelect?i.jsxRuntimeExports.jsx(b.ja,{options:t.availableValues,isClearable:t.clearable===void 0?!0:t.clearable,size:"sm",variant:d,isMulti:!1,isSearchable:!0,filterOption:b.Du(G),onChange:e=>{x(t.filter,e)},defaultValue:t.defaultValue,value:t.value}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(b.ja,{options:t.availableValues,isMulti:!0,size:"sm",isClearable:t.clearable===void 0?!0:t.clearable,variant:d,isSearchable:!0,controlShouldRenderValue:!0,closeMenuOnSelect:!1,hideSelectedOptions:!1,filterOption:b.Du(G),onChange:e=>{x(t.filter,e)},value:t.value,defaultValue:t.defaultValue}),t.allowSelectAll?i.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{x(t.filter,t.availableValues)},children:"Select all options"}):null]})]},s))})}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]",style:{width:R==="side"?"calc(100% - 280px - 1rem)":"100%"},children:r.rows.map((t,s)=>i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-stretch gap-4 w-full h-auto",style:{minHeight:`${t.height||0}px`},children:t.columns.map((e,u)=>i.jsxRuntimeExports.jsx("div",{className:"flex bg-transparent h-inherit grow min-w-60",style:{width:`calc(${100*(e.columnWidth||1)/T(t.columns)}% - ${(T(t.columns)-(e.columnWidth||1))/T(t.columns)}rem)`,minHeight:"inherit"},children:N.includes(e.graphType)?i.jsxRuntimeExports.jsx(I.SingleGraphDashboardThreeDGraphs,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||D,classNames:e.settings?.classNames||y,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||r.language,theme:e.settings?.theme||m},dataSettings:{data:f?M.filterData(f,E||[]):void 0},dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:o,readableHeader:C||[]}):H.includes(e.graphType)?i.jsxRuntimeExports.jsx(J.SingleGraphDashboardGeoHubMaps,{graphType:e.graphType,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||D,classNames:e.settings?.classNames||y,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||r.language,theme:e.settings?.theme||m},debugMode:o}):i.jsxRuntimeExports.jsx($.SingleGraphDashboard,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||D,classNames:e.settings?.classNames||y,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||r.language,theme:e.settings?.theme||m},dataSettings:{data:f?M.filterData(f,E||[]):void 0},updateFilters:e.attachedFilter&&X.indexOf(e.graphType)!==-1&&n.findIndex(c=>c.filter===e.attachedFilter)!==-1?c=>{const P=n.findIndex(z=>z.filter===e.attachedFilter),W=c?n[P].singleSelect?{value:c,label:c}:[{value:c,label:c}]:void 0;x(e.attachedFilter,W)}:void 0,dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:o,readableHeader:C||[]})},u))},s))})]})]})}exports.PerformanceIntensiveMultiGraphDashboard=Y;
2
2
  //# sourceMappingURL=PerformanceIntensiveMultiGraphDashboard.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceIntensiveMultiGraphDashboard.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/MultiGraphDashboard.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { SingleGraphDashboard } from '../SingleGraphDashboard';\r\n\r\nimport { SingleGraphDashboardThreeDGraphs } from './SingleGraphDashboardThreeDGraphs';\r\nimport { SingleGraphDashboardGeoHubMaps } from './SingleGraphDashboardGeoHubMaps';\r\n\r\nimport {\r\n ClassNameObject,\r\n PerformanceIntensiveDashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\r\n PerformanceIntensiveDashboardColumnDataType,\r\n ThreeDGraphType,\r\n GeoHubGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: PerformanceIntensiveDashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: PerformanceIntensiveDashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function PerformanceIntensiveMultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [dataFromFile, setDataFromFile] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const threeDGraphs = ['threeDGlobe'];\r\n const geoHubMaps = ['geoHubCompareMap', 'geoHubMap', 'geoHubMapWithLayerSelection'];\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n const filteredData = useMemo(() => {\r\n if (!dataFromFile || filterSettings.length === 0) return dataFromFile;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = dataFromFile.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n return result;\r\n }, [filterSettings, dataFromFile]);\r\n useEffect(() => {\r\n setData(filteredData);\r\n }, [filteredData]);\r\n\r\n const fetchDataHandler = useCallback(async () => {\r\n if (dataSettings) {\r\n try {\r\n const fetchData = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : fetchAndParseMultipleDataSources(dataSettings.dataURL, dataSettings.idColumnTitle)\r\n : transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n\r\n const d = await fetchData;\r\n setDataFromFile(d);\r\n\r\n // Optimize filter settings generation\r\n const newFilterSettings = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(d, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n\r\n setFilterSettings(newFilterSettings);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n }\r\n }, [dataSettings, filters, debugMode]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = useCallback((filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n }, []);\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex grow`}\r\n dir={\r\n dashboardLayout.language === 'he' || dashboardLayout.language === 'ar' ? 'rtl' : undefined\r\n }\r\n >\r\n <div\r\n className={`${\r\n !dashboardLayout.backgroundColor\r\n ? 'bg-transparent '\r\n : dashboardLayout.backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto gap-4 flex flex-col w-full grow h-inherit ${\r\n dashboardLayout.language || 'en'\r\n }`}\r\n style={{\r\n ...(dashboardLayout.backgroundColor && dashboardLayout.backgroundColor !== true\r\n ? { backgroundColor: dashboardLayout.backgroundColor }\r\n : {}),\r\n }}\r\n id={dashboardID}\r\n >\r\n <div\r\n style={{\r\n padding: dashboardLayout.backgroundColor\r\n ? dashboardLayout.padding || '1rem'\r\n : dashboardLayout.padding || 0,\r\n flexGrow: 1,\r\n display: 'flex',\r\n }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div style={{ display: 'flex', gap: '1rem', flexWrap: 'wrap' }}>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n }}\r\n >\r\n <div\r\n style={{\r\n display: 'flex',\r\n gap: '1rem',\r\n flexWrap: 'wrap',\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n position: 'sticky',\r\n top: '1rem',\r\n }}\r\n >\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n size='sm'\r\n variant={uiMode}\r\n isMulti={false}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n value={d.value}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isMulti\r\n size='sm'\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n closeMenuOnSelect={false}\r\n hideSelectedOptions={false}\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n minWidth: '280px',\r\n flexGrow: 1,\r\n display: 'flex',\r\n gap: '1rem',\r\n flexWrap: 'wrap',\r\n flexShrink: '0',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n display: 'flex',\r\n gap: '1rem',\r\n alignItems: 'stretch',\r\n minHeight: `${d.height || 0}px`,\r\n height: 'auto',\r\n width: '100%',\r\n flexWrap: 'wrap',\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent h-inherit grow min-w-60'\r\n style={{\r\n width: `calc(${\r\n (100 * (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n {threeDGraphs.includes(el.graphType) ? (\r\n <SingleGraphDashboardThreeDGraphs\r\n graphType={el.graphType as ThreeDGraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius:\r\n el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: data ? filterData(data, dataFilters || []) : undefined,\r\n }}\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n ) : geoHubMaps.includes(el.graphType) ? (\r\n <SingleGraphDashboardGeoHubMaps\r\n graphType={el.graphType as GeoHubGraphType}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius:\r\n el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n debugMode={debugMode}\r\n />\r\n ) : (\r\n <SingleGraphDashboard\r\n graphType={el.graphType as GraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius:\r\n el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: data ? filterData(data, dataFilters || []) : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType as GraphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","d","acc","cur","GraphWithAttachedFilter","PerformanceIntensiveMultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","data","setData","useState","dataFromFile","setDataFromFile","filterSettings","setFilterSettings","threeDGraphs","geoHubMaps","filterConfig","useMemo","filteredData","item","filter","flattenDeep","intersection","el","useEffect","fetchDataHandler","useCallback","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","newFilterSettings","transformDefaultValue","getUniqValue","v","error","handleFilterChange","values","prev","f","jsx","jsxs","GraphHeader","i","Label","DropdownSelect","createFilter","Fragment","j","SingleGraphDashboardThreeDGraphs","filterData","SingleGraphDashboardGeoHubMaps","SingleGraphDashboard","dClicked","indx","value"],"mappings":"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"}
1
+ {"version":3,"file":"PerformanceIntensiveMultiGraphDashboard.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { SingleGraphDashboard } from '../SingleGraphDashboard';\r\n\r\nimport { SingleGraphDashboardThreeDGraphs } from './SingleGraphDashboardThreeDGraphs';\r\nimport { SingleGraphDashboardGeoHubMaps } from './SingleGraphDashboardGeoHubMaps';\r\n\r\nimport {\r\n ClassNameObject,\r\n PerformanceIntensiveDashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\r\n PerformanceIntensiveDashboardColumnDataType,\r\n ThreeDGraphType,\r\n GeoHubGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\nimport { GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: PerformanceIntensiveDashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: PerformanceIntensiveDashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function PerformanceIntensiveMultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const threeDGraphs = ['threeDGlobe'];\r\n const geoHubMaps = ['geoHubCompareMap', 'geoHubMap', 'geoHubMapWithLayerSelection'];\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n size='sm'\r\n variant={uiMode}\r\n isMulti={false}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n value={d.value}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isMulti\r\n size='sm'\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n closeMenuOnSelect={false}\r\n hideSelectedOptions={false}\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent h-inherit grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n {threeDGraphs.includes(el.graphType) ? (\r\n <SingleGraphDashboardThreeDGraphs\r\n graphType={el.graphType as ThreeDGraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n ) : geoHubMaps.includes(el.graphType) ? (\r\n <SingleGraphDashboardGeoHubMaps\r\n graphType={el.graphType as GeoHubGraphType}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n debugMode={debugMode}\r\n />\r\n ) : (\r\n <SingleGraphDashboard\r\n graphType={el.graphType as GraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType as GraphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","PerformanceIntensiveMultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","threeDGraphs","geoHubMaps","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","createFilter","Fragment","rows","minHeight","height","j","graphType","SingleGraphDashboardThreeDGraphs","settings","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration","SingleGraphDashboardGeoHubMaps","SingleGraphDashboard","indexOf","findIndex","dClicked","indx"],"mappings":"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"}
@@ -94,6 +94,7 @@ declare interface ClassNameObject {
94
94
  mouseOverLine?: string;
95
95
  regLine?: string;
96
96
  dataCards?: string;
97
+ colorLegend?: string;
97
98
  }
98
99
 
99
100
  declare interface ColumnConfigurationDataType {
@@ -475,6 +476,7 @@ declare interface GraphSettingsDataType {
475
476
  showAxisLabels?: boolean;
476
477
  highlightedAltitude?: number;
477
478
  selectedId?: string;
479
+ collapseColorScaleByDefault?: boolean;
478
480
  }
479
481
 
480
482
  declare type GraphType = GraphTypeForGriddedGraph;