@undp/data-viz 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/dist/AreaChart.cjs +2 -0
  2. package/dist/AreaChart.cjs.map +1 -0
  3. package/dist/AreaChart.js +530 -1
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/Axis-DE7dSn1_.cjs +2 -0
  6. package/dist/{Axis-BlyBRMNw.cjs.map → Axis-DE7dSn1_.cjs.map} +1 -1
  7. package/dist/{Axis-CvK-w3E2.js → Axis-Ddg-seDi.js} +10 -11
  8. package/dist/{Axis-CvK-w3E2.js.map → Axis-Ddg-seDi.js.map} +1 -1
  9. package/dist/AxisTitle-BmHLMRJZ.js +20 -0
  10. package/dist/{AxisTitle-BeMxcw5I.js.map → AxisTitle-BmHLMRJZ.js.map} +1 -1
  11. package/dist/AxisTitle-CK9YeovX.cjs +2 -0
  12. package/dist/{AxisTitle-BY8MI9jC.cjs.map → AxisTitle-CK9YeovX.cjs.map} +1 -1
  13. package/dist/BarGraph.cjs +2 -0
  14. package/dist/BarGraph.cjs.map +1 -0
  15. package/dist/BarGraph.js +4043 -1
  16. package/dist/BarGraph.js.map +1 -1
  17. package/dist/BasicStatCard.cjs +2 -0
  18. package/dist/BasicStatCard.cjs.map +1 -0
  19. package/dist/BasicStatCard.js +190 -1
  20. package/dist/BasicStatCard.js.map +1 -1
  21. package/dist/BeeSwarmChart.cjs +2 -0
  22. package/dist/BeeSwarmChart.cjs.map +1 -0
  23. package/dist/BeeSwarmChart.d.ts +0 -8
  24. package/dist/BeeSwarmChart.js +1042 -1
  25. package/dist/BeeSwarmChart.js.map +1 -1
  26. package/dist/BiVariateChoroplethMap.cjs +2 -0
  27. package/dist/BiVariateChoroplethMap.cjs.map +1 -0
  28. package/dist/BiVariateChoroplethMap.js +720 -1
  29. package/dist/BiVariateChoroplethMap.js.map +1 -1
  30. package/dist/BulletChart.cjs +2 -0
  31. package/dist/BulletChart.cjs.map +1 -0
  32. package/dist/BulletChart.js +1431 -1
  33. package/dist/BulletChart.js.map +1 -1
  34. package/dist/ButterflyChart.cjs +2 -0
  35. package/dist/ButterflyChart.cjs.map +1 -0
  36. package/dist/ButterflyChart.js +692 -1
  37. package/dist/ButterflyChart.js.map +1 -1
  38. package/dist/ChoroplethMap.cjs +2 -0
  39. package/dist/ChoroplethMap.cjs.map +1 -0
  40. package/dist/ChoroplethMap.js +745 -1
  41. package/dist/ChoroplethMap.js.map +1 -1
  42. package/dist/CirclePackingGraph.cjs +2 -0
  43. package/dist/CirclePackingGraph.cjs.map +1 -0
  44. package/dist/CirclePackingGraph.d.ts +0 -8
  45. package/dist/CirclePackingGraph.js +14 -1
  46. package/dist/CirclePackingGraph.js.map +1 -1
  47. package/dist/ColorLegend.cjs +2 -0
  48. package/dist/ColorLegend.cjs.map +1 -0
  49. package/dist/ColorLegend.js +47 -1
  50. package/dist/ColorLegend.js.map +1 -1
  51. package/dist/ColorLegendWithMouseOver.cjs +2 -0
  52. package/dist/ColorLegendWithMouseOver.cjs.map +1 -0
  53. package/dist/ColorLegendWithMouseOver.js +70 -1
  54. package/dist/ColorLegendWithMouseOver.js.map +1 -1
  55. package/dist/Colors.cjs +2 -0
  56. package/dist/Colors.cjs.map +1 -0
  57. package/dist/Colors.js +561 -1
  58. package/dist/Colors.js.map +1 -1
  59. package/dist/CopyTextButton.cjs +17 -0
  60. package/dist/CopyTextButton.cjs.map +1 -0
  61. package/dist/CopyTextButton.js +698 -16
  62. package/dist/CopyTextButton.js.map +1 -1
  63. package/dist/CsvDownloadButton.cjs +23 -0
  64. package/dist/CsvDownloadButton.cjs.map +1 -0
  65. package/dist/CsvDownloadButton.js +852 -7
  66. package/dist/CsvDownloadButton.js.map +1 -1
  67. package/dist/DataCards.cjs +2 -0
  68. package/dist/DataCards.cjs.map +1 -0
  69. package/dist/DataCards.js +14 -1
  70. package/dist/DataCards.js.map +1 -1
  71. package/dist/DataTable.cjs +2 -0
  72. package/dist/DataTable.cjs.map +1 -0
  73. package/dist/DataTable.js +331 -1
  74. package/dist/DataTable.js.map +1 -1
  75. package/dist/DifferenceLineChart.cjs +2 -0
  76. package/dist/DifferenceLineChart.cjs.map +1 -0
  77. package/dist/DifferenceLineChart.js +805 -1
  78. package/dist/DifferenceLineChart.js.map +1 -1
  79. package/dist/DonutChart.cjs +2 -0
  80. package/dist/DonutChart.cjs.map +1 -0
  81. package/dist/DonutChart.js +478 -1
  82. package/dist/DonutChart.js.map +1 -1
  83. package/dist/DotDensityMap.cjs +2 -0
  84. package/dist/DotDensityMap.cjs.map +1 -0
  85. package/dist/DotDensityMap.js +600 -1
  86. package/dist/DotDensityMap.js.map +1 -1
  87. package/dist/DropdownSelect-0I2QxaVy.cjs +29 -0
  88. package/dist/DropdownSelect-0I2QxaVy.cjs.map +1 -0
  89. package/dist/DropdownSelect-CDC9lEqU.js +4193 -0
  90. package/dist/DropdownSelect-CDC9lEqU.js.map +1 -0
  91. package/dist/DualAxisLineChart.cjs +2 -0
  92. package/dist/DualAxisLineChart.cjs.map +1 -0
  93. package/dist/DualAxisLineChart.js +699 -1
  94. package/dist/DualAxisLineChart.js.map +1 -1
  95. package/dist/DumbbellChart.cjs +2 -0
  96. package/dist/DumbbellChart.cjs.map +1 -0
  97. package/dist/DumbbellChart.js +1510 -1
  98. package/dist/DumbbellChart.js.map +1 -1
  99. package/dist/{EmptyState-b2Ln487i.js → EmptyState-DdTp-Mdn.js} +8 -8
  100. package/dist/{EmptyState-b2Ln487i.js.map → EmptyState-DdTp-Mdn.js.map} +1 -1
  101. package/dist/EmptyState-d8_8SxeW.cjs +2 -0
  102. package/dist/{EmptyState-BQguKAp5.cjs.map → EmptyState-d8_8SxeW.cjs.map} +1 -1
  103. package/dist/ExcelDownloadButton.cjs +2 -0
  104. package/dist/ExcelDownloadButton.cjs.map +1 -0
  105. package/dist/ExcelDownloadButton.js +29 -1
  106. package/dist/ExcelDownloadButton.js.map +1 -1
  107. package/dist/FootNote.cjs +2 -0
  108. package/dist/FootNote.cjs.map +1 -0
  109. package/dist/FootNote.js +20 -1
  110. package/dist/FootNote.js.map +1 -1
  111. package/dist/GeoHubCompareMaps.cjs +2 -0
  112. package/dist/GeoHubCompareMaps.cjs.map +1 -0
  113. package/dist/GeoHubCompareMaps.js +370 -1
  114. package/dist/GeoHubCompareMaps.js.map +1 -1
  115. package/dist/GeoHubMap.cjs +2 -0
  116. package/dist/GeoHubMap.cjs.map +1 -0
  117. package/dist/GeoHubMap.js +429 -1
  118. package/dist/GeoHubMap.js.map +1 -1
  119. package/dist/GeoHubMapWithLayerSelection.cjs +2 -0
  120. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -0
  121. package/dist/GeoHubMapWithLayerSelection.js +307 -1
  122. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  123. package/dist/GraphDescription.cjs +2 -0
  124. package/dist/GraphDescription.cjs.map +1 -0
  125. package/dist/GraphDescription.js +20 -1
  126. package/dist/GraphDescription.js.map +1 -1
  127. package/dist/GraphFooter.cjs +2 -0
  128. package/dist/GraphFooter.cjs.map +1 -0
  129. package/dist/GraphFooter.js +21 -1
  130. package/dist/GraphFooter.js.map +1 -1
  131. package/dist/GraphHeader.cjs +2 -0
  132. package/dist/GraphHeader.cjs.map +1 -0
  133. package/dist/GraphHeader.js +63 -1
  134. package/dist/GraphHeader.js.map +1 -1
  135. package/dist/GraphTitle.cjs +2 -0
  136. package/dist/GraphTitle.cjs.map +1 -0
  137. package/dist/GraphTitle.js +28 -1
  138. package/dist/GraphTitle.js.map +1 -1
  139. package/dist/GriddedGraphs.cjs +2 -0
  140. package/dist/GriddedGraphs.cjs.map +1 -0
  141. package/dist/GriddedGraphs.js +482 -1
  142. package/dist/GriddedGraphs.js.map +1 -1
  143. package/dist/GriddedGraphsFromConfig.cjs +2 -0
  144. package/dist/GriddedGraphsFromConfig.cjs.map +1 -0
  145. package/dist/GriddedGraphsFromConfig.js +42 -1
  146. package/dist/GriddedGraphsFromConfig.js.map +1 -1
  147. package/dist/HeatMap.cjs +2 -0
  148. package/dist/HeatMap.cjs.map +1 -0
  149. package/dist/HeatMap.js +451 -1
  150. package/dist/HeatMap.js.map +1 -1
  151. package/dist/Histogram.cjs +2 -0
  152. package/dist/Histogram.cjs.map +1 -0
  153. package/dist/Histogram.js +287 -1
  154. package/dist/Histogram.js.map +1 -1
  155. package/dist/ImageDownloadButton.cjs +2 -0
  156. package/dist/ImageDownloadButton.cjs.map +1 -0
  157. package/dist/ImageDownloadButton.js +28 -1
  158. package/dist/ImageDownloadButton.js.map +1 -1
  159. package/dist/LineChartWithConfidenceInterval.cjs +2 -0
  160. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -0
  161. package/dist/LineChartWithConfidenceInterval.js +818 -1
  162. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  163. package/dist/LinearColorLegend.cjs +2 -0
  164. package/dist/LinearColorLegend.cjs.map +1 -0
  165. package/dist/LinearColorLegend.js +33 -1
  166. package/dist/LinearColorLegend.js.map +1 -1
  167. package/dist/Modal-CUU6ZK3U.js +1019 -0
  168. package/dist/Modal-CUU6ZK3U.js.map +1 -0
  169. package/dist/Modal-C_dl0EtQ.cjs +46 -0
  170. package/dist/Modal-C_dl0EtQ.cjs.map +1 -0
  171. package/dist/MultiGraphDashboard.cjs +2 -0
  172. package/dist/MultiGraphDashboard.cjs.map +1 -0
  173. package/dist/MultiGraphDashboard.js +303 -1
  174. package/dist/MultiGraphDashboard.js.map +1 -1
  175. package/dist/MultiGraphDashboardFromConfig.cjs +2 -0
  176. package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -0
  177. package/dist/MultiGraphDashboardFromConfig.js +37 -1
  178. package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
  179. package/dist/MultiGraphDashboardWideToLongFormat.cjs +2 -0
  180. package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -0
  181. package/dist/MultiGraphDashboardWideToLongFormat.js +243 -1
  182. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
  183. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +2 -0
  184. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -0
  185. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +30 -1
  186. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
  187. package/dist/MultiLineAltChart.cjs +2 -0
  188. package/dist/MultiLineAltChart.cjs.map +1 -0
  189. package/dist/MultiLineAltChart.js +689 -1
  190. package/dist/MultiLineAltChart.js.map +1 -1
  191. package/dist/MultiLineChart.cjs +2 -0
  192. package/dist/MultiLineChart.cjs.map +1 -0
  193. package/dist/MultiLineChart.js +722 -1
  194. package/dist/MultiLineChart.js.map +1 -1
  195. package/dist/ParetoChart.cjs +2 -0
  196. package/dist/ParetoChart.cjs.map +1 -0
  197. package/dist/ParetoChart.js +636 -1
  198. package/dist/ParetoChart.js.map +1 -1
  199. package/dist/RadarChart.cjs +2 -0
  200. package/dist/RadarChart.cjs.map +1 -0
  201. package/dist/RadarChart.js +677 -1
  202. package/dist/RadarChart.js.map +1 -1
  203. package/dist/{ReferenceLine-BgDdQbDI.js → ReferenceLine-C1GpoG9d.js} +33 -34
  204. package/dist/ReferenceLine-C1GpoG9d.js.map +1 -0
  205. package/dist/ReferenceLine-CuFMk0cI.cjs +2 -0
  206. package/dist/ReferenceLine-CuFMk0cI.cjs.map +1 -0
  207. package/dist/RegressionLine-7_rKTHN_.cjs +2 -0
  208. package/dist/{RegressionLine-BfpCuD7B.cjs.map → RegressionLine-7_rKTHN_.cjs.map} +1 -1
  209. package/dist/{RegressionLine-cSljpHaE.js → RegressionLine-BFwDCTUU.js} +17 -18
  210. package/dist/{RegressionLine-cSljpHaE.js.map → RegressionLine-BFwDCTUU.js.map} +1 -1
  211. package/dist/SVGDownloadButton.cjs +2 -0
  212. package/dist/SVGDownloadButton.cjs.map +1 -0
  213. package/dist/SVGDownloadButton.js +28 -1
  214. package/dist/SVGDownloadButton.js.map +1 -1
  215. package/dist/SankeyChart.cjs +2 -0
  216. package/dist/SankeyChart.cjs.map +1 -0
  217. package/dist/SankeyChart.js +989 -1
  218. package/dist/SankeyChart.js.map +1 -1
  219. package/dist/ScatterPlot.cjs +2 -0
  220. package/dist/ScatterPlot.cjs.map +1 -0
  221. package/dist/ScatterPlot.js +828 -1
  222. package/dist/ScatterPlot.js.map +1 -1
  223. package/dist/ScrollStory.cjs +2 -0
  224. package/dist/ScrollStory.cjs.map +1 -0
  225. package/dist/ScrollStory.js +105 -1
  226. package/dist/ScrollStory.js.map +1 -1
  227. package/dist/SimpleLineChart.cjs +2 -0
  228. package/dist/SimpleLineChart.cjs.map +1 -0
  229. package/dist/SimpleLineChart.js +619 -1
  230. package/dist/SimpleLineChart.js.map +1 -1
  231. package/dist/SingleGraphDashboard.cjs +2 -0
  232. package/dist/SingleGraphDashboard.cjs.map +1 -0
  233. package/dist/SingleGraphDashboard.js +522 -1
  234. package/dist/SingleGraphDashboard.js.map +1 -1
  235. package/dist/SingleGraphDashboardFromConfig.cjs +2 -0
  236. package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -0
  237. package/dist/SingleGraphDashboardFromConfig.js +34 -1
  238. package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
  239. package/dist/SlopeChart.cjs +2 -0
  240. package/dist/SlopeChart.cjs.map +1 -0
  241. package/dist/SlopeChart.js +582 -1
  242. package/dist/SlopeChart.js.map +1 -1
  243. package/dist/Source.cjs +2 -0
  244. package/dist/Source.cjs.map +1 -0
  245. package/dist/Source.js +40 -1
  246. package/dist/Source.js.map +1 -1
  247. package/dist/SparkLine.cjs +2 -0
  248. package/dist/SparkLine.cjs.map +1 -0
  249. package/dist/SparkLine.js +320 -1
  250. package/dist/SparkLine.js.map +1 -1
  251. package/dist/Spinner-C85UF28E.js +30 -0
  252. package/dist/Spinner-C85UF28E.js.map +1 -0
  253. package/dist/Spinner-DA6Z5E4n.cjs +2 -0
  254. package/dist/Spinner-DA6Z5E4n.cjs.map +1 -0
  255. package/dist/StatCardFromData.cjs +2 -0
  256. package/dist/StatCardFromData.cjs.map +1 -0
  257. package/dist/StatCardFromData.js +249 -1
  258. package/dist/StatCardFromData.js.map +1 -1
  259. package/dist/StripChart.cjs +2 -0
  260. package/dist/StripChart.cjs.map +1 -0
  261. package/dist/StripChart.js +988 -1
  262. package/dist/StripChart.js.map +1 -1
  263. package/dist/ThreeDGlobe.cjs +2 -0
  264. package/dist/ThreeDGlobe.cjs.map +1 -0
  265. package/dist/ThreeDGlobe.js +451 -1
  266. package/dist/ThreeDGlobe.js.map +1 -1
  267. package/dist/ThresholdColorLegendWithMouseOver.cjs +2 -0
  268. package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -0
  269. package/dist/ThresholdColorLegendWithMouseOver.js +130 -1
  270. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
  271. package/dist/{Tooltip-CzZ1wFyF.js → Tooltip-DyM5snqx.js} +15 -16
  272. package/dist/{Tooltip-CzZ1wFyF.js.map → Tooltip-DyM5snqx.js.map} +1 -1
  273. package/dist/Tooltip-n8z5bfav.cjs +2 -0
  274. package/dist/{Tooltip-BM18N_3l.cjs.map → Tooltip-n8z5bfav.cjs.map} +1 -1
  275. package/dist/TreeMapGraph.cjs +2 -0
  276. package/dist/TreeMapGraph.cjs.map +1 -0
  277. package/dist/TreeMapGraph.js +760 -1
  278. package/dist/TreeMapGraph.js.map +1 -1
  279. package/dist/Types.cjs +2 -0
  280. package/dist/Types.cjs.map +1 -0
  281. package/dist/Types.js +1 -1
  282. package/dist/Typography-Ctgfl1J5.js +140 -0
  283. package/dist/Typography-Ctgfl1J5.js.map +1 -0
  284. package/dist/Typography-k-kOjICQ.cjs +2 -0
  285. package/dist/Typography-k-kOjICQ.cjs.map +1 -0
  286. package/dist/UnitChart.cjs +2 -0
  287. package/dist/UnitChart.cjs.map +1 -0
  288. package/dist/UnitChart.js +216 -1
  289. package/dist/UnitChart.js.map +1 -1
  290. package/dist/XAxesLabels-CJMQbfVy.cjs +2 -0
  291. package/dist/{XAxesLabels-C9REbQQs.cjs.map → XAxesLabels-CJMQbfVy.cjs.map} +1 -1
  292. package/dist/{XAxesLabels-DVw7Lvuz.js → XAxesLabels-DQFo_z2R.js} +21 -22
  293. package/dist/{XAxesLabels-DVw7Lvuz.js.map → XAxesLabels-DQFo_z2R.js.map} +1 -1
  294. package/dist/{XTicksAndGridLines-CUefTINd.js → XTicksAndGridLines-Bn9u5gOM.js} +19 -20
  295. package/dist/{XTicksAndGridLines-CUefTINd.js.map → XTicksAndGridLines-Bn9u5gOM.js.map} +1 -1
  296. package/dist/XTicksAndGridLines-CCzXIV8d.cjs +2 -0
  297. package/dist/{XTicksAndGridLines-DuK35ROS.cjs.map → XTicksAndGridLines-CCzXIV8d.cjs.map} +1 -1
  298. package/dist/YAxesLabels-BXLTX7AI.cjs +2 -0
  299. package/dist/{YAxesLabels-DhBdLk3Z.cjs.map → YAxesLabels-BXLTX7AI.cjs.map} +1 -1
  300. package/dist/{YAxesLabels-CYVY053X.js → YAxesLabels-H5-002X5.js} +11 -12
  301. package/dist/{YAxesLabels-CYVY053X.js.map → YAxesLabels-H5-002X5.js.map} +1 -1
  302. package/dist/{YTicksAndGridLines-BJRXuBdC.js → YTicksAndGridLines-B6ah7CRf.js} +14 -15
  303. package/dist/{YTicksAndGridLines-BJRXuBdC.js.map → YTicksAndGridLines-B6ah7CRf.js.map} +1 -1
  304. package/dist/YTicksAndGridLines-DBDuz6vb.cjs +2 -0
  305. package/dist/{YTicksAndGridLines-CtLvzExe.cjs.map → YTicksAndGridLines-DBDuz6vb.cjs.map} +1 -1
  306. package/dist/{checkIfMultiple-CaefP4X2.js → checkIfMultiple-BB7PlCNh.js} +1013 -518
  307. package/dist/checkIfMultiple-BB7PlCNh.js.map +1 -0
  308. package/dist/checkIfMultiple-D5ysrI7G.cjs +12 -0
  309. package/dist/checkIfMultiple-D5ysrI7G.cjs.map +1 -0
  310. package/dist/checkIfNullOrUndefined-BCW3Y1ML.cjs +2 -0
  311. package/dist/checkIfNullOrUndefined-BCW3Y1ML.cjs.map +1 -0
  312. package/dist/checkIfNullOrUndefined-DmfiKkNw.js +7 -0
  313. package/dist/checkIfNullOrUndefined-DmfiKkNw.js.map +1 -0
  314. package/dist/customArea-BYNyxAkm.cjs +2 -0
  315. package/dist/{customArea-B47Ew5cT.cjs.map → customArea-BYNyxAkm.cjs.map} +1 -1
  316. package/dist/{customArea-I3MsoqIl.js → customArea-CaxScFmW.js} +29 -30
  317. package/dist/{customArea-I3MsoqIl.js.map → customArea-CaxScFmW.js.map} +1 -1
  318. package/dist/excelDownload-BOA-lskf.js +19 -0
  319. package/dist/excelDownload-BOA-lskf.js.map +1 -0
  320. package/dist/excelDownload-BQpsCa62.cjs +2 -0
  321. package/dist/excelDownload-BQpsCa62.cjs.map +1 -0
  322. package/dist/fetchAndParseData-Bcmr659B.js +1196 -0
  323. package/dist/fetchAndParseData-Bcmr659B.js.map +1 -0
  324. package/dist/fetchAndParseData-DmgQtB9n.cjs +16 -0
  325. package/dist/fetchAndParseData-DmgQtB9n.cjs.map +1 -0
  326. package/dist/fetchAndParseData.cjs +2 -0
  327. package/dist/fetchAndParseData.cjs.map +1 -0
  328. package/dist/fetchAndParseData.js +9 -15
  329. package/dist/fetchAndParseData.js.map +1 -1
  330. package/dist/getGraphList-DuColTJM.js +265 -0
  331. package/dist/getGraphList-DuColTJM.js.map +1 -0
  332. package/dist/getGraphList-gf02xgT2.cjs +2 -0
  333. package/dist/getGraphList-gf02xgT2.cjs.map +1 -0
  334. package/dist/getJenks-TWQvbuOz.cjs +2 -0
  335. package/dist/getJenks-TWQvbuOz.cjs.map +1 -0
  336. package/dist/getJenks-VhM3GIoC.js +23 -0
  337. package/dist/getJenks-VhM3GIoC.js.map +1 -0
  338. package/dist/getSchema.cjs +2 -0
  339. package/dist/getSchema.cjs.map +1 -0
  340. package/dist/getSchema.js +910 -1
  341. package/dist/getSchema.js.map +1 -1
  342. package/dist/getSliderMarks-C0jptXeP.js +1054 -0
  343. package/dist/getSliderMarks-C0jptXeP.js.map +1 -0
  344. package/dist/getSliderMarks-CtsEXiLV.cjs +6 -0
  345. package/dist/getSliderMarks-CtsEXiLV.cjs.map +1 -0
  346. package/dist/getTextColorBasedOnBgColor-B6Nk2WBf.js +28 -0
  347. package/dist/getTextColorBasedOnBgColor-B6Nk2WBf.js.map +1 -0
  348. package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs +2 -0
  349. package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -0
  350. package/dist/getUniqValue-BtUENB2H.js +20 -0
  351. package/dist/getUniqValue-BtUENB2H.js.map +1 -0
  352. package/dist/getUniqValue-CHqgSss5.cjs +2 -0
  353. package/dist/getUniqValue-CHqgSss5.cjs.map +1 -0
  354. package/dist/imageDownload-CgDcm1Sj.cjs +3 -0
  355. package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -0
  356. package/dist/imageDownload-Dcci2LEy.js +495 -0
  357. package/dist/imageDownload-Dcci2LEy.js.map +1 -0
  358. package/dist/index-BVnYktl4.js +435 -0
  359. package/dist/index-BVnYktl4.js.map +1 -0
  360. package/dist/index-BW_-wD2k.cjs +2 -0
  361. package/dist/index-BW_-wD2k.cjs.map +1 -0
  362. package/dist/{index-DXmF_0ez.js → index-BmCqpO1B.js} +74 -40
  363. package/dist/index-BmCqpO1B.js.map +1 -0
  364. package/dist/{index-Db-Yg_Ud.js → index-BxAUvrua.js} +19 -19
  365. package/dist/{index-Db-Yg_Ud.js.map → index-BxAUvrua.js.map} +1 -1
  366. package/dist/index-CHPV5EwG-BPSP-7Jg.js +3341 -0
  367. package/dist/index-CHPV5EwG-BPSP-7Jg.js.map +1 -0
  368. package/dist/index-CHPV5EwG-DDoeWRVt.cjs +44 -0
  369. package/dist/index-CHPV5EwG-DDoeWRVt.cjs.map +1 -0
  370. package/dist/index-CylX-pWB.cjs +2 -0
  371. package/dist/{index-BYroABPm.cjs.map → index-CylX-pWB.cjs.map} +1 -1
  372. package/dist/index-D9h2WYDS.cjs +22 -0
  373. package/dist/index-D9h2WYDS.cjs.map +1 -0
  374. package/dist/index-DG3YrCr5-D3FrrXj8.js +459 -0
  375. package/dist/index-DG3YrCr5-D3FrrXj8.js.map +1 -0
  376. package/dist/index-DG3YrCr5-v7rayV3N.cjs +2 -0
  377. package/dist/index-DG3YrCr5-v7rayV3N.cjs.map +1 -0
  378. package/dist/index-DVOJ7vxH.cjs +10 -0
  379. package/dist/{index-a2C2Bqn2.cjs.map → index-DVOJ7vxH.cjs.map} +1 -1
  380. package/dist/index-D_n8aamX.cjs +2 -0
  381. package/dist/index-D_n8aamX.cjs.map +1 -0
  382. package/dist/index-OCoyy1wG.js +635 -0
  383. package/dist/index-OCoyy1wG.js.map +1 -0
  384. package/dist/{index-DzdwZ2OA.js → index-n_RI8T0n.js} +3 -3
  385. package/dist/{index-DzdwZ2OA.js.map → index-n_RI8T0n.js.map} +1 -1
  386. package/dist/index-tvAyXPPW-DBlMKnNB.js +47 -0
  387. package/dist/index-tvAyXPPW-DBlMKnNB.js.map +1 -0
  388. package/dist/index-tvAyXPPW-DPOG-C2i.cjs +2 -0
  389. package/dist/index-tvAyXPPW-DPOG-C2i.cjs.map +1 -0
  390. package/dist/index.cjs +2 -0
  391. package/dist/index.cjs.map +1 -0
  392. package/dist/index.d.ts +1 -5
  393. package/dist/index.js +180 -1
  394. package/dist/index.js.map +1 -1
  395. package/dist/numberFormattingFunction-02t-wJta.cjs +2 -0
  396. package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -0
  397. package/dist/numberFormattingFunction-14YCbkN2.js +13 -0
  398. package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -0
  399. package/dist/{use-in-view-CZPXmTZM.js → proxy-DJxJg1kD.js} +699 -732
  400. package/dist/proxy-DJxJg1kD.js.map +1 -0
  401. package/dist/{use-in-view-Dl1CsAIo.cjs → proxy-PQd2AItT.cjs} +2 -2
  402. package/dist/proxy-PQd2AItT.cjs.map +1 -0
  403. package/dist/removeOutliers-DR48e-18.js +57 -0
  404. package/dist/removeOutliers-DR48e-18.js.map +1 -0
  405. package/dist/removeOutliers-WELHHqiI.cjs +2 -0
  406. package/dist/removeOutliers-WELHHqiI.cjs.map +1 -0
  407. package/dist/{string2HTML-BX0oNw83.js → string2HTML-CWHGfz_d.js} +2 -2
  408. package/dist/{string2HTML-BX0oNw83.js.map → string2HTML-CWHGfz_d.js.map} +1 -1
  409. package/dist/{string2HTML-X4ZYX5jI.cjs → string2HTML-D2Avudmb.cjs} +2 -2
  410. package/dist/{string2HTML-X4ZYX5jI.cjs.map → string2HTML-D2Avudmb.cjs.map} +1 -1
  411. package/dist/svgDownload-C2-E3yf2.js +9 -0
  412. package/dist/svgDownload-C2-E3yf2.js.map +1 -0
  413. package/dist/svgDownload-D9zEGjTF.cjs +2 -0
  414. package/dist/svgDownload-D9zEGjTF.cjs.map +1 -0
  415. package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs +4 -0
  416. package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs.map +1 -0
  417. package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js +145 -0
  418. package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js.map +1 -0
  419. package/dist/transformData.cjs +2 -0
  420. package/dist/transformData.cjs.map +1 -0
  421. package/dist/transformData.d.ts +170 -0
  422. package/dist/transformData.js +10 -0
  423. package/dist/transformData.js.map +1 -0
  424. package/dist/transformDataForAggregation-BUGJnson.cjs +2 -0
  425. package/dist/transformDataForAggregation-BUGJnson.cjs.map +1 -0
  426. package/dist/transformDataForAggregation-DAQJWGNL.js +759 -0
  427. package/dist/transformDataForAggregation-DAQJWGNL.js.map +1 -0
  428. package/dist/transformDataForGraphFromFile-CrntpaMU.cjs +2 -0
  429. package/dist/transformDataForGraphFromFile-CrntpaMU.cjs.map +1 -0
  430. package/dist/transformDataForGraphFromFile-DdNiOWeC.js +24 -0
  431. package/dist/transformDataForGraphFromFile-DdNiOWeC.js.map +1 -0
  432. package/dist/use-in-view-BAHrBy6b.js +40 -0
  433. package/dist/use-in-view-BAHrBy6b.js.map +1 -0
  434. package/dist/use-in-view-BCmzDU2O.cjs +2 -0
  435. package/dist/use-in-view-BCmzDU2O.cjs.map +1 -0
  436. package/dist/utils.cjs +2 -0
  437. package/dist/utils.cjs.map +1 -0
  438. package/dist/utils.d.ts +217 -0
  439. package/dist/utils.js +27 -0
  440. package/dist/utils.js.map +1 -0
  441. package/dist/validateSchema.cjs +2 -0
  442. package/dist/validateSchema.cjs.map +1 -0
  443. package/dist/validateSchema.js +104 -1
  444. package/dist/validateSchema.js.map +1 -1
  445. package/dist/x-CnsEH4Ox-CGGXQl4M.cjs +27 -0
  446. package/dist/x-CnsEH4Ox-CGGXQl4M.cjs.map +1 -0
  447. package/dist/x-CnsEH4Ox-DDvAJndW.js +101 -0
  448. package/dist/x-CnsEH4Ox-DDvAJndW.js.map +1 -0
  449. package/package.json +15 -90
  450. package/dist/Axis-BlyBRMNw.cjs +0 -2
  451. package/dist/AxisTitle-BY8MI9jC.cjs +0 -2
  452. package/dist/AxisTitle-BeMxcw5I.js +0 -21
  453. package/dist/DropdownSelect-CuzV7gdj.cjs +0 -29
  454. package/dist/DropdownSelect-CuzV7gdj.cjs.map +0 -1
  455. package/dist/DropdownSelect-DmZsXrhY.js +0 -2698
  456. package/dist/DropdownSelect-DmZsXrhY.js.map +0 -1
  457. package/dist/EmptyState-BQguKAp5.cjs +0 -2
  458. package/dist/Modal-C9txyGOk.js +0 -723
  459. package/dist/Modal-C9txyGOk.js.map +0 -1
  460. package/dist/Modal-cQF2UQIa.cjs +0 -46
  461. package/dist/Modal-cQF2UQIa.cjs.map +0 -1
  462. package/dist/ReferenceLine-BgDdQbDI.js.map +0 -1
  463. package/dist/ReferenceLine-Bsb5jeE4.cjs +0 -2
  464. package/dist/ReferenceLine-Bsb5jeE4.cjs.map +0 -1
  465. package/dist/RegressionLine-BfpCuD7B.cjs +0 -2
  466. package/dist/Spinner-DN3s4S0H.js +0 -17
  467. package/dist/Spinner-DN3s4S0H.js.map +0 -1
  468. package/dist/Spinner-UmN-KPe9.cjs +0 -2
  469. package/dist/Spinner-UmN-KPe9.cjs.map +0 -1
  470. package/dist/Tooltip-BM18N_3l.cjs +0 -2
  471. package/dist/Typography-CDR-DAHH.cjs +0 -2
  472. package/dist/Typography-CDR-DAHH.cjs.map +0 -1
  473. package/dist/Typography-XJoSE-By.js +0 -58
  474. package/dist/Typography-XJoSE-By.js.map +0 -1
  475. package/dist/XAxesLabels-C9REbQQs.cjs +0 -2
  476. package/dist/XTicksAndGridLines-DuK35ROS.cjs +0 -2
  477. package/dist/YAxesLabels-DhBdLk3Z.cjs +0 -2
  478. package/dist/YTicksAndGridLines-CtLvzExe.cjs +0 -2
  479. package/dist/checkIfMultiple-CaefP4X2.js.map +0 -1
  480. package/dist/checkIfMultiple-D3h8to1T.cjs +0 -12
  481. package/dist/checkIfMultiple-D3h8to1T.cjs.map +0 -1
  482. package/dist/checkIfNullOrUndefined.d.ts +0 -15
  483. package/dist/checkIfNullOrUndefined.js +0 -2
  484. package/dist/checkIfNullOrUndefined.js.map +0 -1
  485. package/dist/customArea-B47Ew5cT.cjs +0 -2
  486. package/dist/excelDownload.d.ts +0 -31
  487. package/dist/excelDownload.js +0 -2
  488. package/dist/excelDownload.js.map +0 -1
  489. package/dist/generateCodes.d.ts +0 -25
  490. package/dist/generateCodes.js +0 -2
  491. package/dist/generateCodes.js.map +0 -1
  492. package/dist/getJenks.d.ts +0 -17
  493. package/dist/getJenks.js +0 -2
  494. package/dist/getJenks.js.map +0 -1
  495. package/dist/getPercentileValue.d.ts +0 -13
  496. package/dist/getPercentileValue.js +0 -2
  497. package/dist/getPercentileValue.js.map +0 -1
  498. package/dist/getQueryParamsFromLink.d.ts +0 -18
  499. package/dist/getQueryParamsFromLink.js +0 -2
  500. package/dist/getQueryParamsFromLink.js.map +0 -1
  501. package/dist/getSliderMarks-CWajGCGq.js +0 -719
  502. package/dist/getSliderMarks-CWajGCGq.js.map +0 -1
  503. package/dist/getSliderMarks-DDJ1CdhL.cjs +0 -6
  504. package/dist/getSliderMarks-DDJ1CdhL.cjs.map +0 -1
  505. package/dist/getTextColorBasedOnBgColor.d.ts +0 -13
  506. package/dist/getTextColorBasedOnBgColor.js +0 -2
  507. package/dist/getTextColorBasedOnBgColor.js.map +0 -1
  508. package/dist/getUniqValue.d.ts +0 -18
  509. package/dist/getUniqValue.js +0 -2
  510. package/dist/getUniqValue.js.map +0 -1
  511. package/dist/graphList.d.ts +0 -9
  512. package/dist/graphList.js +0 -2
  513. package/dist/graphList.js.map +0 -1
  514. package/dist/imageDownload.d.ts +0 -16
  515. package/dist/imageDownload.js +0 -3
  516. package/dist/imageDownload.js.map +0 -1
  517. package/dist/index-01r5X3Gr-9jE0ObrK.cjs +0 -2
  518. package/dist/index-01r5X3Gr-9jE0ObrK.cjs.map +0 -1
  519. package/dist/index-01r5X3Gr-kH7FxQ7P.js +0 -451
  520. package/dist/index-01r5X3Gr-kH7FxQ7P.js.map +0 -1
  521. package/dist/index-BGMGC-HN.cjs +0 -22
  522. package/dist/index-BGMGC-HN.cjs.map +0 -1
  523. package/dist/index-BHm2KTjD-2e-Fu8L-.js +0 -702
  524. package/dist/index-BHm2KTjD-2e-Fu8L-.js.map +0 -1
  525. package/dist/index-BHm2KTjD-D8FylaKc.cjs +0 -44
  526. package/dist/index-BHm2KTjD-D8FylaKc.cjs.map +0 -1
  527. package/dist/index-BIPNFFja.js +0 -506
  528. package/dist/index-BIPNFFja.js.map +0 -1
  529. package/dist/index-BYroABPm.cjs +0 -2
  530. package/dist/index-CEc_9zWy.cjs +0 -2
  531. package/dist/index-CEc_9zWy.cjs.map +0 -1
  532. package/dist/index-CbVeVrla.cjs +0 -2
  533. package/dist/index-CbVeVrla.cjs.map +0 -1
  534. package/dist/index-CqzhBPuO-CfQywbdq.js +0 -41
  535. package/dist/index-CqzhBPuO-CfQywbdq.js.map +0 -1
  536. package/dist/index-CqzhBPuO-raKZqS7l.cjs +0 -2
  537. package/dist/index-CqzhBPuO-raKZqS7l.cjs.map +0 -1
  538. package/dist/index-DSnvdkHZ.js +0 -495
  539. package/dist/index-DSnvdkHZ.js.map +0 -1
  540. package/dist/index-DXmF_0ez.js.map +0 -1
  541. package/dist/index-a2C2Bqn2.cjs +0 -10
  542. package/dist/numberFormattingFunction.d.ts +0 -22
  543. package/dist/numberFormattingFunction.js +0 -2
  544. package/dist/numberFormattingFunction.js.map +0 -1
  545. package/dist/removeOutliers.d.ts +0 -16
  546. package/dist/removeOutliers.js +0 -2
  547. package/dist/removeOutliers.js.map +0 -1
  548. package/dist/svgDownload.d.ts +0 -16
  549. package/dist/svgDownload.js +0 -2
  550. package/dist/svgDownload.js.map +0 -1
  551. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js +0 -139
  552. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js.map +0 -1
  553. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs +0 -4
  554. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs.map +0 -1
  555. package/dist/transformColumnsToArray.d.ts +0 -38
  556. package/dist/transformColumnsToArray.js +0 -2
  557. package/dist/transformColumnsToArray.js.map +0 -1
  558. package/dist/transformDataForAggregation.d.ts +0 -38
  559. package/dist/transformDataForAggregation.js +0 -2
  560. package/dist/transformDataForAggregation.js.map +0 -1
  561. package/dist/transformDataForGraph.d.ts +0 -47
  562. package/dist/transformDataForGraph.js +0 -2
  563. package/dist/transformDataForGraph.js.map +0 -1
  564. package/dist/transformDataForGraphFromFile.d.ts +0 -66
  565. package/dist/transformDataForGraphFromFile.js +0 -2
  566. package/dist/transformDataForGraphFromFile.js.map +0 -1
  567. package/dist/use-in-view-CZPXmTZM.js.map +0 -1
  568. package/dist/use-in-view-Dl1CsAIo.cjs.map +0 -1
  569. package/dist/x-Dft9NVe_-DcB7wtv5.js +0 -61
  570. package/dist/x-Dft9NVe_-DcB7wtv5.js.map +0 -1
  571. package/dist/x-Dft9NVe_-LeyJu02C.cjs +0 -27
  572. package/dist/x-Dft9NVe_-LeyJu02C.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GriddedGraphs.js","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\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 { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\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 [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\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 const gridValue = getUniqValue(d, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\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, debugMode, columnGridBy, filters]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\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 || graphSettings?.theme || 'light'} flex ${\r\n graphSettings?.width ? 'w-fit grow-0' : 'w-full grow'\r\n }`}\r\n dir={graphSettings?.language === 'he' || graphSettings?.language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={`${\r\n !graphSettings?.backgroundColor\r\n ? 'bg-transparent '\r\n : graphSettings?.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 ${graphSettings?.language || 'en'}`}\r\n style={{\r\n ...(graphSettings?.backgroundColor && graphSettings?.backgroundColor !== true\r\n ? { backgroundColor: graphSettings?.backgroundColor }\r\n : {}),\r\n }}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={\r\n graphSettings?.ariaLabel ||\r\n `${\r\n graphSettings?.graphTitle ? `The graph shows ${graphSettings?.graphTitle}. ` : ''\r\n }This is a gridded chart.${\r\n graphSettings?.graphDescription ? ` ${graphSettings?.graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n style={{\r\n padding: graphSettings?.backgroundColor\r\n ? graphSettings?.padding || '1rem'\r\n : graphSettings?.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 {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description ||\r\n graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title:\r\n advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv.current : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\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 }}\r\n >\r\n {advancedDataSelectionOptions?.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: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.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: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>\r\n {d.label || `Visualize ${d.chartConfigId} by`}\r\n </Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n }\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\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 flexWrap: 'wrap',\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 variant={uiMode}\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isRtl={\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n }\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n isRtl={\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n }\r\n />\r\n {d.allowSelectAll ? (\r\n <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 type='button'\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 ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined ||\r\n graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n style={{\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '1rem',\r\n flexDirection:\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n ? 'row-reverse'\r\n : 'row',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) -\r\n 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth)\r\n ? '280px'\r\n : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.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":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","filteredData","item","filter","flattenDeep","intersection","el","useEffect","fetchDataHandler","useCallback","d","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","gridValue","getUniqValue","newFilterSettings","transformDefaultValue","v","error","handleFilterChange","values","prev","f","jsx","jsxs","GraphHeader","Fragment","i","Label","DropdownSelect","opt","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","ColorLegend","Colors","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","Spinner","GraphFooter"],"mappings":"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"}
1
+ {"version":3,"file":"GriddedGraphs.js","sources":["../src/Components/Dashboard/GriddedGraphs.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\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 { Colors } from '@/Components/ColorPalette';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n showCommonColorScale?: boolean;\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n minGraphHeight?: number;\r\n minGraphWidth?: number;\r\n debugMode?: boolean;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\nexport function GriddedGraphs(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n noOfColumns,\r\n columnGridBy,\r\n dataFilters,\r\n showCommonColorScale,\r\n minGraphHeight,\r\n minGraphWidth,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n uiMode = 'normal',\r\n theme = 'light',\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 [gridOption, setGridOption] = useState<(string | number)[]>([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n\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 const gridValue = getUniqValue(d, columnGridBy) as (string | number)[];\r\n setGridOption(gridValue);\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, debugMode, columnGridBy, filters]);\r\n useEffect(() => {\r\n fetchDataHandler();\r\n }, [fetchDataHandler]);\r\n useEffect(() => {\r\n setGraphConfig(graphDataConfiguration);\r\n }, [graphDataConfiguration]);\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 || graphSettings?.theme || 'light'} flex ${\r\n graphSettings?.width ? 'w-fit grow-0' : 'w-full grow'\r\n }`}\r\n dir={graphSettings?.language === 'he' || graphSettings?.language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={`${\r\n !graphSettings?.backgroundColor\r\n ? 'bg-transparent '\r\n : graphSettings?.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 ${graphSettings?.language || 'en'}`}\r\n style={{\r\n ...(graphSettings?.backgroundColor && graphSettings?.backgroundColor !== true\r\n ? { backgroundColor: graphSettings?.backgroundColor }\r\n : {}),\r\n }}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={\r\n graphSettings?.ariaLabel ||\r\n `${\r\n graphSettings?.graphTitle ? `The graph shows ${graphSettings?.graphTitle}. ` : ''\r\n }This is a gridded chart.${\r\n graphSettings?.graphDescription ? ` ${graphSettings?.graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n style={{\r\n padding: graphSettings?.backgroundColor\r\n ? graphSettings?.padding || '1rem'\r\n : graphSettings?.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 {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description ||\r\n graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title:\r\n advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv.current : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {data && gridOption.length > 0 ? (\r\n <>\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ? (\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 }}\r\n >\r\n {advancedDataSelectionOptions?.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: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.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: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>\r\n {d.label || `Visualize ${d.chartConfigId} by`}\r\n </Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n isMulti\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el.map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n isRtl={\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n }\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\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 flexWrap: 'wrap',\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 variant={uiMode}\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isRtl={\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n }\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n variant={uiMode}\r\n options={d.availableValues}\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n isRtl={\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n }\r\n />\r\n {d.allowSelectAll ? (\r\n <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 type='button'\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 ) : null}\r\n {showCommonColorScale !== false && graphSettings?.showColorScale !== false ? (\r\n <ColorLegend\r\n width={graphSettings?.width}\r\n colorLegendTitle={graphSettings?.colorLegendTitle}\r\n colors={\r\n (graphSettings?.colors as string[] | undefined) ||\r\n (graphSettings?.lineColors as string[] | undefined) ||\r\n Colors[(graphSettings?.theme as 'light' | 'dark' | undefined) || 'light']\r\n .categoricalColors.colors\r\n }\r\n colorDomain={graphSettings?.colorDomain || graphSettings?.labels || []}\r\n showNAColor={\r\n graphSettings?.showNAColor === undefined ||\r\n graphSettings?.showNAColor === null\r\n ? true\r\n : graphSettings?.showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n style={{\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '1rem',\r\n flexDirection:\r\n graphSettings?.language === 'ar' || graphSettings?.language === 'he'\r\n ? 'row-reverse'\r\n : 'row',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n {gridOption.map((el, i) => (\r\n <div\r\n key={i}\r\n style={{\r\n width: `calc(${\r\n 100 /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }% - ${\r\n ((noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number)) -\r\n 1) /\r\n (noOfColumns || (Math.min(...[4, gridOption.length || 0]) as number))\r\n }rem)`,\r\n minWidth: checkIfNullOrUndefined(minGraphWidth)\r\n ? '280px'\r\n : `${minGraphWidth}px`,\r\n }}\r\n >\r\n <GraphEl\r\n graph={graphType}\r\n graphDataConfiguration={graphConfig}\r\n graphData={\r\n transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d: any) => d[columnGridBy] === el,\r\n ),\r\n graphType,\r\n graphConfig,\r\n ) || []\r\n }\r\n debugMode={debugMode}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n theme: graphSettings?.theme || theme,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: graphSettings?.relativeHeight || 0.67,\r\n minHeight: minGraphHeight,\r\n graphTitle: `${el}`,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n padding: '0',\r\n footNote: undefined,\r\n sources: undefined,\r\n showColorScale:\r\n graphSettings?.showColorScale === false\r\n ? false\r\n : showCommonColorScale === false,\r\n }}\r\n readableHeader={readableHeader || []}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n {graphSettings?.sources || graphSettings?.footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: graphSettings?.styles?.footnote,\r\n source: graphSettings?.styles?.source,\r\n }}\r\n classNames={{\r\n footnote: graphSettings?.classNames?.footnote,\r\n source: graphSettings?.classNames?.source,\r\n }}\r\n sources={graphSettings?.sources}\r\n footNote={graphSettings?.footNote}\r\n width={graphSettings?.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":["GriddedGraphs","props","graphSettings","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","noOfColumns","columnGridBy","dataFilters","showCommonColorScale","minGraphHeight","minGraphWidth","debugMode","dataSelectionOptions","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","uiMode","theme","data","setData","useState","dataFromFile","setDataFromFile","gridOption","setGridOption","graphParentDiv","useRef","graphConfig","setGraphConfig","filterSettings","setFilterSettings","advancedGraphSettings","setAdvancedGraphSettings","filterConfig","useMemo","filteredData","item","filter","flattenDeep","intersection","el","useEffect","fetchDataHandler","useCallback","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformColumnsToArray","gridValue","getUniqValue","newFilterSettings","transformDefaultValue","v","error","handleFilterChange","values","prev","f","jsx","jsxs","GraphHeader","Fragment","d","i","Label","DropdownSelect","opt","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","updatedConfig","CheckboxGroup","CheckboxGroupItem","ColorLegend","Colors","checkIfNullOrUndefined","GraphEl","transformDataForGraph","transformDataForAggregation","filterData","Spinner","GraphFooter"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index-CHPV5EwG-DDoeWRVt.cjs"),n=require("react"),s=require("./Spinner-DA6Z5E4n.cjs"),d=require("./GriddedGraphs.cjs"),c=require("./fetchAndParseData-DmgQtB9n.cjs");function f(i){const{config:t}=i,[e,r]=n.useState(void 0);return n.useEffect(()=>{(async()=>{if(typeof t=="string"){const o=await c.fetchAndParseJSON(t);r(o)}else r(t)})()},[t]),e?a.jsxRuntimeExports.jsx(d.GriddedGraphs,{noOfColumns:e.noOfColumns,columnGridBy:e.columnGridBy,graphSettings:e.graphSettings,dataSettings:e.dataSettings,filters:e.filters,graphType:e.graphType,minGraphHeight:e.minGraphHeight,minGraphWidth:e.minGraphWidth,dataTransform:e.dataTransform,graphDataConfiguration:e.graphDataConfiguration,dataFilters:e.dataFilters,showCommonColorScale:e.showCommonColorScale,debugMode:e.debugMode,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,readableHeader:e.readableHeader,noOfFiltersPerRow:e.noOfFiltersPerRow,theme:e.theme}):a.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:a.jsxRuntimeExports.jsx(s.y,{})})}exports.GriddedGraphsFromConfig=f;
2
+ //# sourceMappingURL=GriddedGraphsFromConfig.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GriddedGraphsFromConfig.cjs","sources":["../src/Components/Dashboard/GriddedGraphsFromConfig.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\n\r\nimport { GriddedGraphs } from './GriddedGraphs';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\n\r\ninterface ConfigObject {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n showCommonColorScale?: boolean;\r\n minGraphWidth?: number;\r\n minGraphHeight?: number;\r\n debugMode?: boolean;\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\ninterface Props {\r\n config: string | ConfigObject;\r\n}\r\n\r\nexport function GriddedGraphsFromConfig(props: Props) {\r\n const { config } = props;\r\n const [configSettings, setConfigSettings] = useState<ConfigObject | undefined>(undefined);\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n if (typeof config === 'string') {\r\n const data = await fetchAndParseJSON(config);\r\n setConfigSettings(data);\r\n } else {\r\n setConfigSettings(config);\r\n }\r\n };\r\n fetchData();\r\n }, [config]);\r\n\r\n if (!configSettings)\r\n return (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n );\r\n return (\r\n <GriddedGraphs\r\n noOfColumns={configSettings.noOfColumns}\r\n columnGridBy={configSettings.columnGridBy}\r\n graphSettings={configSettings.graphSettings}\r\n dataSettings={configSettings.dataSettings}\r\n filters={configSettings.filters}\r\n graphType={configSettings.graphType}\r\n minGraphHeight={configSettings.minGraphHeight}\r\n minGraphWidth={configSettings.minGraphWidth}\r\n dataTransform={configSettings.dataTransform}\r\n graphDataConfiguration={configSettings.graphDataConfiguration}\r\n dataFilters={configSettings.dataFilters}\r\n showCommonColorScale={configSettings.showCommonColorScale}\r\n debugMode={configSettings.debugMode}\r\n dataSelectionOptions={configSettings.dataSelectionOptions}\r\n advancedDataSelectionOptions={configSettings.advancedDataSelectionOptions}\r\n readableHeader={configSettings.readableHeader}\r\n noOfFiltersPerRow={configSettings.noOfFiltersPerRow}\r\n theme={configSettings.theme}\r\n />\r\n );\r\n}\r\n"],"names":["GriddedGraphsFromConfig","props","config","configSettings","setConfigSettings","useState","useEffect","data","fetchAndParseJSON","jsx","GriddedGraphs","Spinner"],"mappings":"uQAiDO,SAASA,EAAwBC,EAAc,CACpD,KAAM,CAAE,OAAAC,GAAWD,EACb,CAACE,EAAgBC,CAAiB,EAAIC,EAAAA,SAAmC,MAAS,EAaxF,OAZAC,EAAAA,UAAU,IAAM,EACI,SAAY,CAC5B,GAAI,OAAOJ,GAAW,SAAU,CAC9B,MAAMK,EAAO,MAAMC,EAAAA,kBAAkBN,CAAM,EAC3CE,EAAkBG,CAAI,CACxB,MACEH,EAAkBF,CAAM,CAE5B,GACA,CACF,EAAG,CAACA,CAAM,CAAC,EAENC,EAOHM,EAAAA,kBAAAA,IAACC,EAAAA,cAAA,CACC,YAAaP,EAAe,YAC5B,aAAcA,EAAe,aAC7B,cAAeA,EAAe,cAC9B,aAAcA,EAAe,aAC7B,QAASA,EAAe,QACxB,UAAWA,EAAe,UAC1B,eAAgBA,EAAe,eAC/B,cAAeA,EAAe,cAC9B,cAAeA,EAAe,cAC9B,uBAAwBA,EAAe,uBACvC,YAAaA,EAAe,YAC5B,qBAAsBA,EAAe,qBACrC,UAAWA,EAAe,UAC1B,qBAAsBA,EAAe,qBACrC,6BAA8BA,EAAe,6BAC7C,eAAgBA,EAAe,eAC/B,kBAAmBA,EAAe,kBAClC,MAAOA,EAAe,KAAA,CAAA,0BAvBrB,MAAA,CAAI,UAAU,iCACb,SAAAM,wBAACE,EAAAA,IAAQ,EACX,CAwBN"}
@@ -1,2 +1,43 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-BHm2KTjD-D8FylaKc.cjs"),n=require("react"),s=require("./Spinner-UmN-KPe9.cjs"),d=require("./GriddedGraphs.js"),c=require("./fetchAndParseData.js");function p(i){const{config:t}=i,[e,a]=n.useState(void 0);return n.useEffect(()=>{(async()=>{if(typeof t=="string"){const o=await c.fetchAndParseJSON(t);a(o)}else a(t)})()},[t]),e?r.jsxRuntimeExports.jsx(d.GriddedGraphs,{noOfColumns:e.noOfColumns,columnGridBy:e.columnGridBy,graphSettings:e.graphSettings,dataSettings:e.dataSettings,filters:e.filters,graphType:e.graphType,minGraphHeight:e.minGraphHeight,minGraphWidth:e.minGraphWidth,dataTransform:e.dataTransform,graphDataConfiguration:e.graphDataConfiguration,dataFilters:e.dataFilters,showCommonColorScale:e.showCommonColorScale,debugMode:e.debugMode,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,readableHeader:e.readableHeader,noOfFiltersPerRow:e.noOfFiltersPerRow,theme:e.theme}):r.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:r.jsxRuntimeExports.jsx(s.SpinnerExports.Spinner,{})})}exports.GriddedGraphsFromConfig=p;
1
+ import { j as a } from "./index-CHPV5EwG-BPSP-7Jg.js";
2
+ import { useState as n, useEffect as s } from "react";
3
+ import { y as d } from "./Spinner-C85UF28E.js";
4
+ import { GriddedGraphs as f } from "./GriddedGraphs.js";
5
+ import { f as m } from "./fetchAndParseData-Bcmr659B.js";
6
+ function S(r) {
7
+ const { config: e } = r, [t, o] = n(void 0);
8
+ return s(() => {
9
+ (async () => {
10
+ if (typeof e == "string") {
11
+ const i = await m(e);
12
+ o(i);
13
+ } else
14
+ o(e);
15
+ })();
16
+ }, [e]), t ? /* @__PURE__ */ a.jsx(
17
+ f,
18
+ {
19
+ noOfColumns: t.noOfColumns,
20
+ columnGridBy: t.columnGridBy,
21
+ graphSettings: t.graphSettings,
22
+ dataSettings: t.dataSettings,
23
+ filters: t.filters,
24
+ graphType: t.graphType,
25
+ minGraphHeight: t.minGraphHeight,
26
+ minGraphWidth: t.minGraphWidth,
27
+ dataTransform: t.dataTransform,
28
+ graphDataConfiguration: t.graphDataConfiguration,
29
+ dataFilters: t.dataFilters,
30
+ showCommonColorScale: t.showCommonColorScale,
31
+ debugMode: t.debugMode,
32
+ dataSelectionOptions: t.dataSelectionOptions,
33
+ advancedDataSelectionOptions: t.advancedDataSelectionOptions,
34
+ readableHeader: t.readableHeader,
35
+ noOfFiltersPerRow: t.noOfFiltersPerRow,
36
+ theme: t.theme
37
+ }
38
+ ) : /* @__PURE__ */ a.jsx("div", { className: "w-full flex justify-center p-4", children: /* @__PURE__ */ a.jsx(d, {}) });
39
+ }
40
+ export {
41
+ S as GriddedGraphsFromConfig
42
+ };
2
43
  //# sourceMappingURL=GriddedGraphsFromConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GriddedGraphsFromConfig.js","sources":["../src/Components/Dashboard/GriddedGraphsFromConfig.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\n\r\nimport { GriddedGraphs } from './GriddedGraphs';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\n\r\ninterface ConfigObject {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n showCommonColorScale?: boolean;\r\n minGraphWidth?: number;\r\n minGraphHeight?: number;\r\n debugMode?: boolean;\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\ninterface Props {\r\n config: string | ConfigObject;\r\n}\r\n\r\nexport function GriddedGraphsFromConfig(props: Props) {\r\n const { config } = props;\r\n const [configSettings, setConfigSettings] = useState<ConfigObject | undefined>(undefined);\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n if (typeof config === 'string') {\r\n const data = await fetchAndParseJSON(config);\r\n setConfigSettings(data);\r\n } else {\r\n setConfigSettings(config);\r\n }\r\n };\r\n fetchData();\r\n }, [config]);\r\n\r\n if (!configSettings)\r\n return (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n );\r\n return (\r\n <GriddedGraphs\r\n noOfColumns={configSettings.noOfColumns}\r\n columnGridBy={configSettings.columnGridBy}\r\n graphSettings={configSettings.graphSettings}\r\n dataSettings={configSettings.dataSettings}\r\n filters={configSettings.filters}\r\n graphType={configSettings.graphType}\r\n minGraphHeight={configSettings.minGraphHeight}\r\n minGraphWidth={configSettings.minGraphWidth}\r\n dataTransform={configSettings.dataTransform}\r\n graphDataConfiguration={configSettings.graphDataConfiguration}\r\n dataFilters={configSettings.dataFilters}\r\n showCommonColorScale={configSettings.showCommonColorScale}\r\n debugMode={configSettings.debugMode}\r\n dataSelectionOptions={configSettings.dataSelectionOptions}\r\n advancedDataSelectionOptions={configSettings.advancedDataSelectionOptions}\r\n readableHeader={configSettings.readableHeader}\r\n noOfFiltersPerRow={configSettings.noOfFiltersPerRow}\r\n theme={configSettings.theme}\r\n />\r\n );\r\n}\r\n"],"names":["GriddedGraphsFromConfig","props","config","configSettings","setConfigSettings","useState","useEffect","data","fetchAndParseJSON","jsx","GriddedGraphs","Spinner"],"mappings":"4PAiDO,SAASA,EAAwBC,EAAc,CACpD,KAAM,CAAE,OAAAC,GAAWD,EACb,CAACE,EAAgBC,CAAiB,EAAIC,EAAAA,SAAmC,MAAS,EAaxF,OAZAC,EAAAA,UAAU,IAAM,EACI,SAAY,CAC5B,GAAI,OAAOJ,GAAW,SAAU,CAC9B,MAAMK,EAAO,MAAMC,EAAAA,kBAAkBN,CAAM,EAC3CE,EAAkBG,CAAI,CACxB,MACEH,EAAkBF,CAAM,CAE5B,GACA,CACF,EAAG,CAACA,CAAM,CAAC,EAENC,EAOHM,EAAAA,kBAAAA,IAACC,EAAAA,cAAA,CACC,YAAaP,EAAe,YAC5B,aAAcA,EAAe,aAC7B,cAAeA,EAAe,cAC9B,aAAcA,EAAe,aAC7B,QAASA,EAAe,QACxB,UAAWA,EAAe,UAC1B,eAAgBA,EAAe,eAC/B,cAAeA,EAAe,cAC9B,cAAeA,EAAe,cAC9B,uBAAwBA,EAAe,uBACvC,YAAaA,EAAe,YAC5B,qBAAsBA,EAAe,qBACrC,UAAWA,EAAe,UAC1B,qBAAsBA,EAAe,qBACrC,6BAA8BA,EAAe,6BAC7C,eAAgBA,EAAe,eAC/B,kBAAmBA,EAAe,kBAClC,MAAOA,EAAe,KAAA,CAAA,0BAvBrB,MAAA,CAAI,UAAU,iCACb,SAAAM,wBAACE,EAAAA,eAAAA,UAAQ,EACX,CAwBN"}
1
+ {"version":3,"file":"GriddedGraphsFromConfig.js","sources":["../src/Components/Dashboard/GriddedGraphsFromConfig.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\n\r\nimport { GriddedGraphs } from './GriddedGraphs';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\n\r\ninterface ConfigObject {\r\n noOfColumns?: number;\r\n columnGridBy: string;\r\n graphSettings?: GraphSettingsDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n graphType: Exclude<GraphType, 'geoHubMap' | 'geoHubCompareMap' | 'geoHubMapWithLayerSelection'>;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n showCommonColorScale?: boolean;\r\n minGraphWidth?: number;\r\n minGraphHeight?: number;\r\n debugMode?: boolean;\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n theme?: 'dark' | 'light';\r\n}\r\n\r\ninterface Props {\r\n config: string | ConfigObject;\r\n}\r\n\r\nexport function GriddedGraphsFromConfig(props: Props) {\r\n const { config } = props;\r\n const [configSettings, setConfigSettings] = useState<ConfigObject | undefined>(undefined);\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n if (typeof config === 'string') {\r\n const data = await fetchAndParseJSON(config);\r\n setConfigSettings(data);\r\n } else {\r\n setConfigSettings(config);\r\n }\r\n };\r\n fetchData();\r\n }, [config]);\r\n\r\n if (!configSettings)\r\n return (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n );\r\n return (\r\n <GriddedGraphs\r\n noOfColumns={configSettings.noOfColumns}\r\n columnGridBy={configSettings.columnGridBy}\r\n graphSettings={configSettings.graphSettings}\r\n dataSettings={configSettings.dataSettings}\r\n filters={configSettings.filters}\r\n graphType={configSettings.graphType}\r\n minGraphHeight={configSettings.minGraphHeight}\r\n minGraphWidth={configSettings.minGraphWidth}\r\n dataTransform={configSettings.dataTransform}\r\n graphDataConfiguration={configSettings.graphDataConfiguration}\r\n dataFilters={configSettings.dataFilters}\r\n showCommonColorScale={configSettings.showCommonColorScale}\r\n debugMode={configSettings.debugMode}\r\n dataSelectionOptions={configSettings.dataSelectionOptions}\r\n advancedDataSelectionOptions={configSettings.advancedDataSelectionOptions}\r\n readableHeader={configSettings.readableHeader}\r\n noOfFiltersPerRow={configSettings.noOfFiltersPerRow}\r\n theme={configSettings.theme}\r\n />\r\n );\r\n}\r\n"],"names":["GriddedGraphsFromConfig","props","config","configSettings","setConfigSettings","useState","useEffect","data","fetchAndParseJSON","jsx","GriddedGraphs","Spinner"],"mappings":";;;;;AAiDO,SAASA,EAAwBC,GAAc;AACpD,QAAM,EAAE,QAAAC,MAAWD,GACb,CAACE,GAAgBC,CAAiB,IAAIC,EAAmC,MAAS;AAaxF,SAZAC,EAAU,MAAM;AASd,KARkB,YAAY;AAC5B,UAAI,OAAOJ,KAAW,UAAU;AAC9B,cAAMK,IAAO,MAAMC,EAAkBN,CAAM;AAC3C,QAAAE,EAAkBG,CAAI;AAAA,MACxB;AACE,QAAAH,EAAkBF,CAAM;AAAA,IAE5B,GACA;AAAA,EACF,GAAG,CAACA,CAAM,CAAC,GAENC,IAOHM,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAaP,EAAe;AAAA,MAC5B,cAAcA,EAAe;AAAA,MAC7B,eAAeA,EAAe;AAAA,MAC9B,cAAcA,EAAe;AAAA,MAC7B,SAASA,EAAe;AAAA,MACxB,WAAWA,EAAe;AAAA,MAC1B,gBAAgBA,EAAe;AAAA,MAC/B,eAAeA,EAAe;AAAA,MAC9B,eAAeA,EAAe;AAAA,MAC9B,wBAAwBA,EAAe;AAAA,MACvC,aAAaA,EAAe;AAAA,MAC5B,sBAAsBA,EAAe;AAAA,MACrC,WAAWA,EAAe;AAAA,MAC1B,sBAAsBA,EAAe;AAAA,MACrC,8BAA8BA,EAAe;AAAA,MAC7C,gBAAgBA,EAAe;AAAA,MAC/B,mBAAmBA,EAAe;AAAA,MAClC,OAAOA,EAAe;AAAA,IAAA;AAAA,EAAA,0BAvBrB,OAAA,EAAI,WAAU,kCACb,UAAAM,gBAAAA,MAACE,KAAQ,GACX;AAwBN;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-CHPV5EwG-DDoeWRVt.cjs"),c=require("react"),ue=require("./index-BXns0-ng.cjs"),le=require("./index-CZbIGs8q.cjs"),ce=require("./Modal-C_dl0EtQ.cjs"),xe=require("./numberFormattingFunction-02t-wJta.cjs"),he=require("./Tooltip-n8z5bfav.cjs"),de=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),re=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),ge=require("./string2HTML-D2Avudmb.cjs"),me=require("./XAxesLabels-CJMQbfVy.cjs"),pe=require("./YAxesLabels-BXLTX7AI.cjs"),fe=require("./use-in-view-BCmzDU2O.cjs"),ae=require("./band-CAApY4Pd.cjs"),je=require("./ordinal-BOeNbyae.cjs"),Ce=require("./threshold-DNsSUf8Q.cjs"),ye=require("./linear-BVckp9RD.cjs"),se=require("./proxy-PQd2AItT.cjs"),ve=require("./GraphHeader.cjs"),we=require("./GraphFooter.cjs"),be=require("./ColorLegendWithMouseOver.cjs"),Ee=require("./LinearColorLegend.cjs"),Re=require("./ThresholdColorLegendWithMouseOver.cjs"),i=require("./Colors.cjs"),qe=require("./EmptyState-d8_8SxeW.cjs");function $e(U){const{data:m,showColumnLabels:N,leftMargin:O,rightMargin:F,truncateBy:p,width:H,height:I,topMargin:z,bottomMargin:_,tooltip:q,onSeriesMouseOver:r,suffix:J,prefix:s,showValues:G,colorDomain:$,colors:S,noDataColor:f,scaleType:X,showRowLabels:K,selectedColor:Y,onSeriesMouseClick:V,resetSelectionOnDoubleClick:Q,detailsOnClick:y,styles:L,classNames:j,animate:v,precision:Z}=U,W=c.useRef(null),D=fe.useInView(W,{once:v.once,amount:v.amount}),l={top:z,bottom:_,left:O,right:F},[w,T]=c.useState(void 0),[x,M]=c.useState(void 0),[A,b]=c.useState(void 0),[o,B]=c.useState(void 0),ee=H-l.left-l.right,te=I-l.top-l.bottom,h=le.uniqBy(m,e=>e.column).map(e=>e.column),d=le.uniqBy(m,e=>e.row).map(e=>e.row),E=ae.band().domain(d).range([0,te]),k=E.bandwidth(),a=ae.band().domain(h).range([0,ee]),R=a.bandwidth(),P=X==="categorical"?je.ordinal().domain($).range(S):X==="threshold"?Ce.threshold().domain($).range(S):ye.linear().domain($).range(S);return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsxs(se.motion.svg,{width:`${H}px`,height:`${I}px`,viewBox:`0 0 ${H} ${I}`,style:{marginLeft:"auto",marginRight:"auto"},direction:"ltr",ref:W,children:[t.jsxRuntimeExports.jsx("g",{transform:`translate(${l.left},0)`,children:N?h.map((e,C)=>t.jsxRuntimeExports.jsx(me.XAxesLabels,{y:0,x:a(e),width:R,height:l.top-5,value:`${e}`.length<p?`${e}`:`${`${e}`.substring(0,p)}...`,style:L?.xAxis?.labels,className:j?.xAxis?.labels,alignment:"bottom",animate:{duration:0,once:!0,amount:0},isInView:D},C)):null}),t.jsxRuntimeExports.jsx("g",{transform:`translate(0,${l.top})`,children:K?d.map((e,C)=>t.jsxRuntimeExports.jsx(pe.YAxesLabels,{value:`${e}`.length<p?`${e}`:`${`${e}`.substring(0,p)}...`,y:E(e),x:0,width:l.left,height:k,alignment:"right",style:L?.yAxis?.labels,className:j?.yAxis?.labels,animate:{duration:0,once:!0,amount:0},isInView:D},C)):null}),t.jsxRuntimeExports.jsxs("g",{transform:`translate(${l.left},${l.top})`,children:[d.map((e,C)=>t.jsxRuntimeExports.jsx("g",{transform:`translate(0,${E(e)})`,children:h.map(g=>t.jsxRuntimeExports.jsx("rect",{x:a(g),y:0,width:R,height:k,style:{fill:f},className:"stroke-1 stroke-primary-white dark:stroke-primary-gray-700"},`${e}-${g}`))},C)),m.filter(e=>!re.checkIfNullOrUndefined(e.value)).map((e,C)=>{const g=re.checkIfNullOrUndefined(e.value)?f:P(e.value);return t.jsxRuntimeExports.jsxs("g",{transform:`translate(${a(e.column)},${E(e.row)})`,onMouseEnter:u=>{M(e),B(u.clientY),b(u.clientX),r?.(e)},onClick:()=>{(V||y)&&(ue.isEqual(w,e)&&Q?(T(void 0),V?.(void 0)):(T(e),V?.(e)))},onMouseMove:u=>{M(e),B(u.clientY),b(u.clientX)},onMouseLeave:()=>{M(void 0),b(void 0),B(void 0),r?.(void 0)},opacity:Y?Y===g?1:.3:1,children:[t.jsxRuntimeExports.jsx(se.motion.rect,{x:0,y:0,width:R,height:k,className:"stroke-1 stroke-primary-white dark:stroke-primary-gray-700",exit:{opacity:0,transition:{duration:v.duration}},variants:{initial:{fill:g,opacity:0},whileInView:{fill:g,opacity:1,transition:{duration:v.duration}}},initial:"initial",animate:D?"whileInView":"initial"}),G&&!re.checkIfNullOrUndefined(e.value)?t.jsxRuntimeExports.jsx(se.motion.g,{variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:v.duration}}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:v.duration}},children:t.jsxRuntimeExports.jsx("foreignObject",{y:0,x:0,width:R,height:k,children:t.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit p-1",children:t.jsxRuntimeExports.jsx("p",{className:t.mo("text-xs text-center m-0 leading-[1.25] graph-value",j?.graphObjectValues),style:{color:de.getTextColorBasedOnBgColor(g),...L?.graphObjectValues||{}},children:xe.numberFormattingFunction(e.value,"NA",Z,s,J)})})},C)}):null]},`${e.column}-${e.row}`)}),x?t.jsxRuntimeExports.jsx("rect",{x:a(x.column),y:E(x.row),width:R,height:k,style:{fill:"none",fillOpacity:0,strokeWidth:1.5},className:"stroke-primary-gray-700 dark:stroke-primary-gray-300"}):null]})]}),x&&q&&A&&o?t.jsxRuntimeExports.jsx(he.Tooltip,{data:x,body:q,xPos:A,yPos:o,backgroundStyle:L?.tooltip,className:j?.tooltip}):null,y&&w!==void 0?t.jsxRuntimeExports.jsx(ce.X,{open:w!==void 0,onClose:()=>{T(void 0)},children:t.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof y=="string"?{__html:ge.string2HTML(y,w)}:void 0,children:typeof y=="function"?y(w):null})}):null]})}function Me(U){const{data:m,graphTitle:N,colors:O,sources:F,graphDescription:p,showColumnLabels:H=!0,leftMargin:I=100,rightMargin:z=10,truncateBy:_=999,height:q,width:r,scaleType:J,colorDomain:s,footNote:G,colorLegendTitle:$,padding:S,backgroundColor:f=!1,topMargin:X=30,bottomMargin:K=10,tooltip:Y,onSeriesMouseOver:V,suffix:Q="",prefix:y="",showRowLabels:L=!0,relativeHeight:j,showValues:v,graphID:Z,noDataColor:W=i.Colors.gray,showColorScale:D=!0,onSeriesMouseClick:l,graphDownload:w=!1,dataDownload:T=!1,fillContainer:x=!0,language:M="en",showNAColor:A=!0,minHeight:b=0,theme:o="light",ariaLabel:B,resetSelectionOnDoubleClick:ee=!0,detailsOnClick:te,styles:h,classNames:d,animate:E=!1,precision:k=2}=U,[a,R]=c.useState(0),[P,e]=c.useState(0),[C,g]=c.useState(void 0),u=c.useRef(null),ie=c.useRef(null);c.useEffect(()=>{const n=new ResizeObserver(ne=>{R(r||ne[0].target.clientWidth||620),e(q||ne[0].target.clientHeight||480)});return u.current&&(e(u.current.clientHeight||480),R(u.current.clientWidth||620),r||n.observe(u.current)),()=>n.disconnect()},[r,q]);const oe=J||(typeof s[0]=="string"?"categorical":s.length===2?"linear":"threshold");return t.jsxRuntimeExports.jsx("div",{className:`${o||"light"} flex ${r?"grow-0":"grow"} ${x?"w-full":"w-fit"}`,dir:M==="he"||M==="ar"?"rtl":void 0,children:t.jsxRuntimeExports.jsx("div",{className:t.mo(`${f?f===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${M||"en"}`,d?.graphContainer),style:{...h?.graphContainer||{},...f&&f!==!0?{backgroundColor:f}:{}},id:Z,ref:ie,"aria-label":B||`${N?`The graph shows ${N}. `:""}This is a heatmap. ${p?` ${p}`:""}`,children:t.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:f?S||"1rem":S||0},children:t.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[N||p||w||T?t.jsxRuntimeExports.jsx(ve.GraphHeader,{styles:{title:h?.title,description:h?.description},classNames:{title:d?.title,description:d?.description},graphTitle:N,graphDescription:p,width:r,graphDownload:w?ie.current:void 0,dataDownload:T?m.map(n=>n.data).filter(n=>n!==void 0).length>0?m.map(n=>n.data).filter(n=>n!==void 0):m.filter(n=>n!==void 0):null}):null,t.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:m.length===0?t.jsxRuntimeExports.jsx(qe.EmptyState,{}):t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[D?oe==="categorical"?t.jsxRuntimeExports.jsx(be.ColorLegendWithMouseOver,{width:x?void 0:r,colorLegendTitle:$,colors:O||(typeof s[0]=="string"?i.Colors[o].categoricalColors.colors:s.length===2?[i.Colors[o].sequentialColors.neutralColorsx09[0],i.Colors[o].sequentialColors.neutralColorsx09[8]]:i.Colors[o].sequentialColors[`neutralColorsx0${s.length+1}`]),colorDomain:s.map(n=>`${n}`),setSelectedColor:g,showNAColor:A}):oe==="threshold"?t.jsxRuntimeExports.jsx(Re.ThresholdColorLegendWithMouseOver,{width:x?void 0:r,colorLegendTitle:$,colors:O||(typeof s[0]=="string"?i.Colors[o].categoricalColors.colors:s.length===2?[i.Colors[o].sequentialColors.neutralColorsx09[0],i.Colors[o].sequentialColors.neutralColorsx09[8]]:i.Colors[o].sequentialColors[`neutralColorsx0${s.length+1}`]),colorDomain:s,setSelectedColor:g,naColor:W,showNAColor:A}):t.jsxRuntimeExports.jsx(Ee.LinearColorLegend,{width:x?void 0:r,colorLegendTitle:$,colors:O||[i.Colors[o].sequentialColors.neutralColorsx09[0],i.Colors[o].sequentialColors.neutralColorsx09[8]],colorDomain:s}):null,t.jsxRuntimeExports.jsx("div",{className:"flex grow flex-col justify-center w-full leading-0",ref:u,"aria-label":"Graph area",children:(r||a)&&(q||P)?t.jsxRuntimeExports.jsx($e,{data:m,colorDomain:s,width:r||a,colors:O||(typeof s[0]=="string"?i.Colors[o].categoricalColors.colors:s.length===2?[i.Colors[o].sequentialColors.neutralColorsx09[0],i.Colors[o].sequentialColors.neutralColorsx09[8]]:i.Colors[o].sequentialColors[`neutralColorsx0${s.length+1}`]),noDataColor:W,scaleType:oe,height:Math.max(b,q||(j?b?(r||a)*j>b?(r||a)*j:b:(r||a)*j:P)),showColumnLabels:H,leftMargin:I,rightMargin:z,topMargin:X,bottomMargin:K,selectedColor:C,truncateBy:_,showRowLabels:L,tooltip:Y,onSeriesMouseOver:V,showValues:v,suffix:Q,prefix:y,onSeriesMouseClick:l,resetSelectionOnDoubleClick:ee,detailsOnClick:te,styles:h,classNames:d,animate:E===!0?{duration:.5,once:!0,amount:.5}:E||{duration:0,once:!0,amount:0},precision:k}):null})]})}),F||G?t.jsxRuntimeExports.jsx(we.GraphFooter,{styles:{footnote:h?.footnote,source:h?.source},classNames:{footnote:d?.footnote,source:d?.source},sources:F,footNote:G,width:r}):null]})})})})}exports.HeatMap=Me;
2
+ //# sourceMappingURL=HeatMap.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeatMap.cjs","sources":["../src/Components/Graphs/HeatMap/Graph.tsx","../src/Components/Graphs/HeatMap/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand, scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport { useRef, useState } from 'react';\r\nimport uniqBy from 'lodash.uniqby';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n HeatMapDataType,\r\n ScaleDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\n\r\ninterface Props {\r\n data: HeatMapDataType[];\r\n colorDomain: string[] | number[];\r\n colors: string[];\r\n noDataColor: string;\r\n scaleType: ScaleDataType;\r\n showColumnLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n showRowLabels: boolean;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n selectedColor?: string;\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 styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showColumnLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n colorDomain,\r\n colors,\r\n noDataColor,\r\n scaleType,\r\n showRowLabels,\r\n selectedColor,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [mouseOverData, setMouseOverData] = useState<HeatMapDataType | undefined>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const columns = uniqBy(data, d => d.column).map(d => d.column);\r\n const rows = uniqBy(data, d => d.row).map(d => d.row);\r\n const y = scaleBand().domain(rows).range([0, graphHeight]);\r\n const barHeight = y.bandwidth();\r\n const x = scaleBand().domain(columns).range([0, graphWidth]);\r\n const barWidth = x.bandwidth();\r\n const colorScale =\r\n scaleType === 'categorical'\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleType === 'threshold'\r\n ? scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors)\r\n : scaleLinear<string, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\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 style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${0})`}>\r\n {showColumnLabels\r\n ? columns.map((d, i) => (\r\n <XAxesLabels\r\n key={i}\r\n y={0}\r\n x={x(d) as number}\r\n width={barWidth}\r\n height={margin.top - 5}\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='bottom'\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${0},${margin.top})`}>\r\n {showRowLabels\r\n ? rows.map((d, i) => (\r\n <YAxesLabels\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n key={i}\r\n y={y(d) as number}\r\n x={0}\r\n width={margin.left}\r\n height={barHeight}\r\n alignment='right'\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {rows.map((d, i) => (\r\n <g key={i} transform={`translate(0,${y(d)})`}>\r\n {columns.map(el => (\r\n <rect\r\n key={`${d}-${el}`}\r\n x={x(el)}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{ fill: noDataColor }}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n />\r\n ))}\r\n </g>\r\n ))}\r\n {data\r\n .filter(d => !checkIfNullOrUndefined(d.value))\r\n .map((d, i) => {\r\n const color = !checkIfNullOrUndefined(d.value)\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n colorScale(d.value as any)\r\n : noDataColor;\r\n return (\r\n <g\r\n key={`${d.column}-${d.row}`}\r\n transform={`translate(${x(d.column)},${y(d.row)})`}\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 opacity={selectedColor ? (selectedColor === color ? 1 : 0.3) : 1}\r\n >\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { fill: color, opacity: 0 },\r\n whileInView: {\r\n fill: color,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.value) ? (\r\n <motion.g\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <foreignObject key={i} y={0} x={0} width={barWidth} height={barHeight}>\r\n <div className='flex flex-col justify-center items-center h-inherit p-1'>\r\n <p\r\n className={cn(\r\n 'text-xs text-center m-0 leading-[1.25] graph-value',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n color: getTextColorBasedOnBgColor(color),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </p>\r\n </div>\r\n </foreignObject>\r\n </motion.g>\r\n ) : null}\r\n </g>\r\n );\r\n })}\r\n {mouseOverData ? (\r\n <rect\r\n x={x(mouseOverData.column)}\r\n y={y(mouseOverData.row)}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{\r\n fill: 'none',\r\n fillOpacity: 0,\r\n strokeWidth: 1.5,\r\n }}\r\n className='stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n />\r\n ) : null}\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 { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n HeatMapDataType,\r\n Languages,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { LinearColorLegend } from '@/Components/Elements/LinearColorLegend';\r\nimport { ThresholdColorLegendWithMouseOver } from '@/Components/Elements/ThresholdColorLegendWithMouseOver';\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: HeatMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for cells */\r\n colors?: string[];\r\n /** Color where data is not available */\r\n noDataColor?: 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 /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels in the column */\r\n showColumnLabels?: boolean;\r\n /** Toggle visibility of labels in the row */\r\n showRowLabels?: boolean;\r\n /** Scale for the colors in the cell */\r\n scaleType?: ScaleDataType;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Domain for the colors in the cell. */\r\n colorDomain: number[] | string[];\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\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 HeatMap(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n showColumnLabels = true,\r\n leftMargin = 100,\r\n rightMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n scaleType,\r\n colorDomain,\r\n footNote,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showRowLabels = true,\r\n relativeHeight,\r\n showValues,\r\n graphID,\r\n noDataColor = Colors.gray,\r\n showColorScale = true,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n 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 const scale =\r\n scaleType ||\r\n (typeof colorDomain[0] === 'string'\r\n ? 'categorical'\r\n : colorDomain.length === 2\r\n ? 'linear'\r\n : 'threshold');\r\n\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'grow-0' : 'grow'} ${\r\n !fillContainer ? 'w-fit' : 'w-full'\r\n }`}\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 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 heatmap. ${graphDescription ? ` ${graphDescription}` : ''}`\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 ? (\r\n scale === 'categorical' ? (\r\n <ColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${\r\n (colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9\r\n }`\r\n ])\r\n }\r\n colorDomain={colorDomain.map(d => `${d}`)}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : scale === 'threshold' ? (\r\n <ThresholdColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${\r\n (colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9\r\n }`\r\n ])\r\n }\r\n colorDomain={colorDomain as number[]}\r\n setSelectedColor={setSelectedColor}\r\n naColor={noDataColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : (\r\n <LinearColorLegend\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors || [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n }\r\n colorDomain={colorDomain as number[]}\r\n />\r\n )\r\n ) : null}\r\n <div\r\n className='flex grow flex-col justify-center w-full 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 colorDomain={colorDomain}\r\n width={width || svgWidth}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${\r\n (colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9\r\n }`\r\n ])\r\n }\r\n noDataColor={noDataColor}\r\n scaleType={scale}\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 showColumnLabels={showColumnLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n selectedColor={selectedColor}\r\n truncateBy={truncateBy}\r\n showRowLabels={showRowLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\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 />\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","showColumnLabels","leftMargin","rightMargin","truncateBy","width","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","colorDomain","colors","noDataColor","scaleType","showRowLabels","selectedColor","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","animate","precision","svgRef","useRef","isInView","useInView","margin","mouseClickData","setMouseClickData","useState","mouseOverData","setMouseOverData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","columns","uniqBy","d","rows","y","scaleBand","barHeight","x","barWidth","colorScale","scaleOrdinal","scaleThreshold","scaleLinear","jsxs","Fragment","motion","jsx","i","XAxesLabels","YAxesLabels","el","checkIfNullOrUndefined","color","event","isEqual","cn","getTextColorBasedOnBgColor","Tooltip","Modal","string2HTML","HeatMap","graphTitle","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","graphID","Colors","showColorScale","graphDownload","dataDownload","fillContainer","language","showNAColor","minHeight","theme","ariaLabel","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","useEffect","resizeObserver","entries","scale","GraphHeader","EmptyState","ColorLegendWithMouseOver","ThresholdColorLegendWithMouseOver","LinearColorLegend","GraphFooter"],"mappings":"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"}