@undp/data-viz 1.2.7 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/dist/AreaChart.d.ts +224 -0
  2. package/dist/AreaChart.js +2 -0
  3. package/dist/AreaChart.js.map +1 -0
  4. package/dist/Axis-BlyBRMNw.cjs +2 -0
  5. package/dist/Axis-BlyBRMNw.cjs.map +1 -0
  6. package/dist/Axis-CvK-w3E2.js +44 -0
  7. package/dist/Axis-CvK-w3E2.js.map +1 -0
  8. package/dist/AxisTitle-BY8MI9jC.cjs +2 -0
  9. package/dist/AxisTitle-BY8MI9jC.cjs.map +1 -0
  10. package/dist/AxisTitle-BeMxcw5I.js +21 -0
  11. package/dist/AxisTitle-BeMxcw5I.js.map +1 -0
  12. package/dist/BarGraph.d.ts +460 -0
  13. package/dist/BarGraph.js +2 -0
  14. package/dist/BarGraph.js.map +1 -0
  15. package/dist/BasicStatCard.d.ts +106 -0
  16. package/dist/BasicStatCard.js +2 -0
  17. package/dist/BasicStatCard.js.map +1 -0
  18. package/dist/BeeSwarmChart.d.ts +189 -0
  19. package/dist/BeeSwarmChart.js +2 -0
  20. package/dist/BeeSwarmChart.js.map +1 -0
  21. package/dist/BiVariateChoroplethMap.d.ts +189 -0
  22. package/dist/BiVariateChoroplethMap.js +2 -0
  23. package/dist/BiVariateChoroplethMap.js.map +1 -0
  24. package/dist/BulletChart.d.ts +219 -0
  25. package/dist/BulletChart.js +2 -0
  26. package/dist/BulletChart.js.map +1 -0
  27. package/dist/ButterflyChart.d.ts +201 -0
  28. package/dist/ButterflyChart.js +2 -0
  29. package/dist/ButterflyChart.js.map +1 -0
  30. package/dist/ChoroplethMap.d.ts +190 -0
  31. package/dist/ChoroplethMap.js +2 -0
  32. package/dist/ChoroplethMap.js.map +1 -0
  33. package/dist/CirclePackingGraph.d.ts +161 -0
  34. package/dist/CirclePackingGraph.js +2 -0
  35. package/dist/CirclePackingGraph.js.map +1 -0
  36. package/dist/ColorLegend.d.ts +17 -0
  37. package/dist/ColorLegend.js +2 -0
  38. package/dist/ColorLegend.js.map +1 -0
  39. package/dist/ColorLegendWithMouseOver.d.ts +16 -0
  40. package/dist/ColorLegendWithMouseOver.js +2 -0
  41. package/dist/ColorLegendWithMouseOver.js.map +1 -0
  42. package/dist/Colors.d.ts +174 -0
  43. package/dist/Colors.js +2 -0
  44. package/dist/Colors.js.map +1 -0
  45. package/dist/CopyTextButton.d.ts +13 -0
  46. package/dist/CopyTextButton.js +17 -0
  47. package/dist/CopyTextButton.js.map +1 -0
  48. package/dist/CsvDownloadButton.d.ts +22 -0
  49. package/dist/CsvDownloadButton.js +23 -0
  50. package/dist/CsvDownloadButton.js.map +1 -0
  51. package/dist/DataCards.d.ts +131 -0
  52. package/dist/DataCards.js +2 -0
  53. package/dist/DataCards.js.map +1 -0
  54. package/dist/DataTable.d.ts +122 -0
  55. package/dist/DataTable.js +2 -0
  56. package/dist/DataTable.js.map +1 -0
  57. package/dist/DifferenceLineChart.d.ts +237 -0
  58. package/dist/DifferenceLineChart.js +2 -0
  59. package/dist/DifferenceLineChart.js.map +1 -0
  60. package/dist/DonutChart.d.ts +148 -0
  61. package/dist/DonutChart.js +2 -0
  62. package/dist/DonutChart.js.map +1 -0
  63. package/dist/DotDensityMap.d.ts +191 -0
  64. package/dist/DotDensityMap.js +2 -0
  65. package/dist/DotDensityMap.js.map +1 -0
  66. package/dist/DropdownSelect-CuzV7gdj.cjs +29 -0
  67. package/dist/DropdownSelect-CuzV7gdj.cjs.map +1 -0
  68. package/dist/DropdownSelect-DmZsXrhY.js +2698 -0
  69. package/dist/DropdownSelect-DmZsXrhY.js.map +1 -0
  70. package/dist/DualAxisLineChart.d.ts +180 -0
  71. package/dist/DualAxisLineChart.js +2 -0
  72. package/dist/DualAxisLineChart.js.map +1 -0
  73. package/dist/DumbbellChart.d.ts +224 -0
  74. package/dist/DumbbellChart.js +2 -0
  75. package/dist/DumbbellChart.js.map +1 -0
  76. package/dist/EmptyState-BQguKAp5.cjs +2 -0
  77. package/dist/EmptyState-BQguKAp5.cjs.map +1 -0
  78. package/dist/EmptyState-b2Ln487i.js +22 -0
  79. package/dist/EmptyState-b2Ln487i.js.map +1 -0
  80. package/dist/ExcelDownloadButton.d.ts +22 -0
  81. package/dist/ExcelDownloadButton.js +2 -0
  82. package/dist/ExcelDownloadButton.js.map +1 -0
  83. package/dist/FootNote.d.ts +12 -0
  84. package/dist/FootNote.js +2 -0
  85. package/dist/FootNote.js.map +1 -0
  86. package/dist/GeoHubCompareMaps.d.ts +103 -0
  87. package/dist/GeoHubCompareMaps.js +2 -0
  88. package/dist/GeoHubCompareMaps.js.map +1 -0
  89. package/dist/GeoHubMap.d.ts +118 -0
  90. package/dist/GeoHubMap.js +2 -0
  91. package/dist/GeoHubMap.js.map +1 -0
  92. package/dist/GeoHubMapWithLayerSelection.d.ts +117 -0
  93. package/dist/GeoHubMapWithLayerSelection.js +2 -0
  94. package/dist/GeoHubMapWithLayerSelection.js.map +1 -0
  95. package/dist/GraphDescription.d.ts +12 -0
  96. package/dist/GraphDescription.js +2 -0
  97. package/dist/GraphDescription.js.map +1 -0
  98. package/dist/GraphFooter.d.ts +24 -0
  99. package/dist/GraphFooter.js +2 -0
  100. package/dist/GraphFooter.js.map +1 -0
  101. package/dist/GraphHeader.d.ts +22 -0
  102. package/dist/GraphHeader.js +2 -0
  103. package/dist/GraphHeader.js.map +1 -0
  104. package/dist/GraphTitle.d.ts +13 -0
  105. package/dist/GraphTitle.js +2 -0
  106. package/dist/GraphTitle.js.map +1 -0
  107. package/dist/GriddedGraphs.d.ts +540 -0
  108. package/dist/GriddedGraphs.js +2 -0
  109. package/dist/GriddedGraphs.js.map +1 -0
  110. package/dist/GriddedGraphsFromConfig.d.ts +543 -0
  111. package/dist/GriddedGraphsFromConfig.js +2 -0
  112. package/dist/GriddedGraphsFromConfig.js.map +1 -0
  113. package/dist/HeatMap.d.ts +166 -0
  114. package/dist/HeatMap.js +2 -0
  115. package/dist/HeatMap.js.map +1 -0
  116. package/dist/Histogram.d.ts +165 -0
  117. package/dist/Histogram.js +2 -0
  118. package/dist/Histogram.js.map +1 -0
  119. package/dist/ImageDownloadButton.d.ts +15 -0
  120. package/dist/ImageDownloadButton.js +2 -0
  121. package/dist/ImageDownloadButton.js.map +1 -0
  122. package/dist/LineChartWithConfidenceInterval.d.ts +250 -0
  123. package/dist/LineChartWithConfidenceInterval.js +2 -0
  124. package/dist/LineChartWithConfidenceInterval.js.map +1 -0
  125. package/dist/LinearColorLegend.d.ts +13 -0
  126. package/dist/LinearColorLegend.js +2 -0
  127. package/dist/LinearColorLegend.js.map +1 -0
  128. package/dist/Modal-C9txyGOk.js +723 -0
  129. package/dist/Modal-C9txyGOk.js.map +1 -0
  130. package/dist/Modal-cQF2UQIa.cjs +46 -0
  131. package/dist/Modal-cQF2UQIa.cjs.map +1 -0
  132. package/dist/MultiGraphDashboard.d.ts +558 -0
  133. package/dist/MultiGraphDashboard.js +2 -0
  134. package/dist/MultiGraphDashboard.js.map +1 -0
  135. package/dist/MultiGraphDashboardFromConfig.d.ts +562 -0
  136. package/dist/MultiGraphDashboardFromConfig.js +2 -0
  137. package/dist/MultiGraphDashboardFromConfig.js.map +1 -0
  138. package/dist/MultiGraphDashboardWideToLongFormat.d.ts +128 -0
  139. package/dist/MultiGraphDashboardWideToLongFormat.js +2 -0
  140. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -0
  141. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +133 -0
  142. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +2 -0
  143. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -0
  144. package/dist/MultiLineAltChart.d.ts +244 -0
  145. package/dist/MultiLineAltChart.js +2 -0
  146. package/dist/MultiLineAltChart.js.map +1 -0
  147. package/dist/MultiLineChart.d.ts +246 -0
  148. package/dist/MultiLineChart.js +2 -0
  149. package/dist/MultiLineChart.js.map +1 -0
  150. package/dist/ParetoChart.d.ts +178 -0
  151. package/dist/ParetoChart.js +2 -0
  152. package/dist/ParetoChart.js.map +1 -0
  153. package/dist/RadarChart.d.ts +176 -0
  154. package/dist/RadarChart.js +2 -0
  155. package/dist/RadarChart.js.map +1 -0
  156. package/dist/ReferenceLine-BgDdQbDI.js +129 -0
  157. package/dist/ReferenceLine-BgDdQbDI.js.map +1 -0
  158. package/dist/ReferenceLine-Bsb5jeE4.cjs +2 -0
  159. package/dist/ReferenceLine-Bsb5jeE4.cjs.map +1 -0
  160. package/dist/RegressionLine-BfpCuD7B.cjs +2 -0
  161. package/dist/RegressionLine-BfpCuD7B.cjs.map +1 -0
  162. package/dist/RegressionLine-cSljpHaE.js +49 -0
  163. package/dist/RegressionLine-cSljpHaE.js.map +1 -0
  164. package/dist/SVGDownloadButton.d.ts +15 -0
  165. package/dist/SVGDownloadButton.js +2 -0
  166. package/dist/SVGDownloadButton.js.map +1 -0
  167. package/dist/SankeyChart.d.ts +178 -0
  168. package/dist/SankeyChart.js +2 -0
  169. package/dist/SankeyChart.js.map +1 -0
  170. package/dist/ScatterPlot.d.ts +266 -0
  171. package/dist/ScatterPlot.js +2 -0
  172. package/dist/ScatterPlot.js.map +1 -0
  173. package/dist/ScrollStory.d.ts +491 -0
  174. package/dist/ScrollStory.js +2 -0
  175. package/dist/ScrollStory.js.map +1 -0
  176. package/dist/SimpleLineChart.d.ts +230 -0
  177. package/dist/SimpleLineChart.js +2 -0
  178. package/dist/SimpleLineChart.js.map +1 -0
  179. package/dist/SingleGraphDashboard.d.ts +545 -0
  180. package/dist/SingleGraphDashboard.js +2 -0
  181. package/dist/SingleGraphDashboard.js.map +1 -0
  182. package/dist/SingleGraphDashboardFromConfig.d.ts +547 -0
  183. package/dist/SingleGraphDashboardFromConfig.js +2 -0
  184. package/dist/SingleGraphDashboardFromConfig.js.map +1 -0
  185. package/dist/SlopeChart.d.ts +167 -0
  186. package/dist/SlopeChart.js +2 -0
  187. package/dist/SlopeChart.js.map +1 -0
  188. package/dist/Source.d.ts +16 -0
  189. package/dist/Source.js +2 -0
  190. package/dist/Source.js.map +1 -0
  191. package/dist/SparkLine.d.ts +139 -0
  192. package/dist/SparkLine.js +2 -0
  193. package/dist/SparkLine.js.map +1 -0
  194. package/dist/Spinner-DN3s4S0H.js +17 -0
  195. package/dist/Spinner-DN3s4S0H.js.map +1 -0
  196. package/dist/Spinner-UmN-KPe9.cjs +2 -0
  197. package/dist/Spinner-UmN-KPe9.cjs.map +1 -0
  198. package/dist/StatCardFromData.d.ts +115 -0
  199. package/dist/StatCardFromData.js +2 -0
  200. package/dist/StatCardFromData.js.map +1 -0
  201. package/dist/StripChart.d.ts +178 -0
  202. package/dist/StripChart.js +2 -0
  203. package/dist/StripChart.js.map +1 -0
  204. package/dist/ThreeDGlobe.d.ts +158 -0
  205. package/dist/ThreeDGlobe.js +2 -0
  206. package/dist/ThreeDGlobe.js.map +1 -0
  207. package/dist/ThresholdColorLegendWithMouseOver.d.ts +16 -0
  208. package/dist/ThresholdColorLegendWithMouseOver.js +2 -0
  209. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -0
  210. package/dist/Tooltip-BM18N_3l.cjs +2 -0
  211. package/dist/Tooltip-BM18N_3l.cjs.map +1 -0
  212. package/dist/Tooltip-CzZ1wFyF.js +47 -0
  213. package/dist/Tooltip-CzZ1wFyF.js.map +1 -0
  214. package/dist/TreeMapGraph.d.ts +158 -0
  215. package/dist/TreeMapGraph.js +2 -0
  216. package/dist/TreeMapGraph.js.map +1 -0
  217. package/dist/Types.d.ts +883 -0
  218. package/dist/Types.js +2 -0
  219. package/dist/Types.js.map +1 -0
  220. package/dist/Typography-CDR-DAHH.cjs +2 -0
  221. package/dist/Typography-CDR-DAHH.cjs.map +1 -0
  222. package/dist/Typography-XJoSE-By.js +58 -0
  223. package/dist/Typography-XJoSE-By.js.map +1 -0
  224. package/dist/UnitChart.d.ts +132 -0
  225. package/dist/UnitChart.js +2 -0
  226. package/dist/UnitChart.js.map +1 -0
  227. package/dist/XAxesLabels-C9REbQQs.cjs +2 -0
  228. package/dist/XAxesLabels-C9REbQQs.cjs.map +1 -0
  229. package/dist/XAxesLabels-DVw7Lvuz.js +58 -0
  230. package/dist/XAxesLabels-DVw7Lvuz.js.map +1 -0
  231. package/dist/XTicksAndGridLines-CUefTINd.js +57 -0
  232. package/dist/XTicksAndGridLines-CUefTINd.js.map +1 -0
  233. package/dist/XTicksAndGridLines-DuK35ROS.cjs +2 -0
  234. package/dist/XTicksAndGridLines-DuK35ROS.cjs.map +1 -0
  235. package/dist/YAxesLabels-CYVY053X.js +53 -0
  236. package/dist/YAxesLabels-CYVY053X.js.map +1 -0
  237. package/dist/YAxesLabels-DhBdLk3Z.cjs +2 -0
  238. package/dist/YAxesLabels-DhBdLk3Z.cjs.map +1 -0
  239. package/dist/YTicksAndGridLines-BJRXuBdC.js +57 -0
  240. package/dist/YTicksAndGridLines-BJRXuBdC.js.map +1 -0
  241. package/dist/YTicksAndGridLines-CtLvzExe.cjs +2 -0
  242. package/dist/YTicksAndGridLines-CtLvzExe.cjs.map +1 -0
  243. package/dist/_commonjsHelpers-DKOUU3wS.cjs +2 -0
  244. package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +1 -0
  245. package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
  246. package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
  247. package/dist/area-BE2wo7fv.js +53 -0
  248. package/dist/area-BE2wo7fv.js.map +1 -0
  249. package/dist/area-D3Qx7k7K.cjs +2 -0
  250. package/dist/area-D3Qx7k7K.cjs.map +1 -0
  251. package/dist/array-B7TkkRH0.js +89 -0
  252. package/dist/array-B7TkkRH0.js.map +1 -0
  253. package/dist/array-DKbXV8lR.cjs +2 -0
  254. package/dist/array-DKbXV8lR.cjs.map +1 -0
  255. package/dist/band-BEjh2CHI.js +47 -0
  256. package/dist/band-BEjh2CHI.js.map +1 -0
  257. package/dist/band-CAApY4Pd.cjs +2 -0
  258. package/dist/band-CAApY4Pd.cjs.map +1 -0
  259. package/dist/checkIfMultiple-CaefP4X2.js +2264 -0
  260. package/dist/checkIfMultiple-CaefP4X2.js.map +1 -0
  261. package/dist/checkIfMultiple-D3h8to1T.cjs +12 -0
  262. package/dist/checkIfMultiple-D3h8to1T.cjs.map +1 -0
  263. package/dist/checkIfNullOrUndefined.d.ts +15 -0
  264. package/dist/checkIfNullOrUndefined.js +2 -0
  265. package/dist/checkIfNullOrUndefined.js.map +1 -0
  266. package/dist/customArea-B47Ew5cT.cjs +2 -0
  267. package/dist/customArea-B47Ew5cT.cjs.map +1 -0
  268. package/dist/customArea-I3MsoqIl.js +176 -0
  269. package/dist/customArea-I3MsoqIl.js.map +1 -0
  270. package/dist/defaultLocale-BEa-49Qz.js +172 -0
  271. package/dist/defaultLocale-BEa-49Qz.js.map +1 -0
  272. package/dist/defaultLocale-DIVzfLaQ.cjs +2 -0
  273. package/dist/defaultLocale-DIVzfLaQ.cjs.map +1 -0
  274. package/dist/delaunay-C1uAf38t.js +684 -0
  275. package/dist/delaunay-C1uAf38t.js.map +1 -0
  276. package/dist/delaunay-rcy0HhZi.cjs +2 -0
  277. package/dist/delaunay-rcy0HhZi.cjs.map +1 -0
  278. package/dist/ensureCompleteData-BBDZbDCE.js +102 -0
  279. package/dist/ensureCompleteData-BBDZbDCE.js.map +1 -0
  280. package/dist/ensureCompleteData-DqWQ2Zbi.cjs +2 -0
  281. package/dist/ensureCompleteData-DqWQ2Zbi.cjs.map +1 -0
  282. package/dist/excelDownload.d.ts +31 -0
  283. package/dist/excelDownload.js +2 -0
  284. package/dist/excelDownload.js.map +1 -0
  285. package/dist/fetchAndParseData.d.ts +84 -0
  286. package/dist/fetchAndParseData.js +16 -0
  287. package/dist/fetchAndParseData.js.map +1 -0
  288. package/dist/filterData-B8ocT57s.js +14 -0
  289. package/dist/filterData-B8ocT57s.js.map +1 -0
  290. package/dist/filterData-DN6py7y_.cjs +2 -0
  291. package/dist/filterData-DN6py7y_.cjs.map +1 -0
  292. package/dist/generateCodes.d.ts +25 -0
  293. package/dist/generateCodes.js +2 -0
  294. package/dist/generateCodes.js.map +1 -0
  295. package/dist/generateRandomString-B5zBiJzS.cjs +2 -0
  296. package/dist/generateRandomString-B5zBiJzS.cjs.map +1 -0
  297. package/dist/generateRandomString-za3IQGfQ.js +11 -0
  298. package/dist/generateRandomString-za3IQGfQ.js.map +1 -0
  299. package/dist/getJenks.d.ts +17 -0
  300. package/dist/getJenks.js +2 -0
  301. package/dist/getJenks.js.map +1 -0
  302. package/dist/getPercentileValue.d.ts +13 -0
  303. package/dist/getPercentileValue.js +2 -0
  304. package/dist/getPercentileValue.js.map +1 -0
  305. package/dist/getQueryParamsFromLink.d.ts +18 -0
  306. package/dist/getQueryParamsFromLink.js +2 -0
  307. package/dist/getQueryParamsFromLink.js.map +1 -0
  308. package/dist/getSchema.d.ts +3256 -0
  309. package/dist/getSchema.js +2 -0
  310. package/dist/getSchema.js.map +1 -0
  311. package/dist/getSliderMarks-CWajGCGq.js +719 -0
  312. package/dist/getSliderMarks-CWajGCGq.js.map +1 -0
  313. package/dist/getSliderMarks-DDJ1CdhL.cjs +6 -0
  314. package/dist/getSliderMarks-DDJ1CdhL.cjs.map +1 -0
  315. package/dist/getTextColorBasedOnBgColor.d.ts +13 -0
  316. package/dist/getTextColorBasedOnBgColor.js +2 -0
  317. package/dist/getTextColorBasedOnBgColor.js.map +1 -0
  318. package/dist/getUniqValue.d.ts +18 -0
  319. package/dist/getUniqValue.js +2 -0
  320. package/dist/getUniqValue.js.map +1 -0
  321. package/dist/graphList.d.ts +9 -0
  322. package/dist/graphList.js +2 -0
  323. package/dist/graphList.js.map +1 -0
  324. package/dist/imageDownload.d.ts +16 -0
  325. package/dist/imageDownload.js +3 -0
  326. package/dist/imageDownload.js.map +1 -0
  327. package/dist/index-01r5X3Gr-9jE0ObrK.cjs +2 -0
  328. package/dist/index-01r5X3Gr-9jE0ObrK.cjs.map +1 -0
  329. package/dist/index-01r5X3Gr-kH7FxQ7P.js +451 -0
  330. package/dist/index-01r5X3Gr-kH7FxQ7P.js.map +1 -0
  331. package/dist/index-27yTRcko.js +35 -0
  332. package/dist/index-27yTRcko.js.map +1 -0
  333. package/dist/index-B0rbzOoC.cjs +2 -0
  334. package/dist/index-B0rbzOoC.cjs.map +1 -0
  335. package/dist/index-BGMGC-HN.cjs +22 -0
  336. package/dist/index-BGMGC-HN.cjs.map +1 -0
  337. package/dist/index-BHm2KTjD-2e-Fu8L-.js +702 -0
  338. package/dist/index-BHm2KTjD-2e-Fu8L-.js.map +1 -0
  339. package/dist/index-BHm2KTjD-D8FylaKc.cjs +44 -0
  340. package/dist/index-BHm2KTjD-D8FylaKc.cjs.map +1 -0
  341. package/dist/index-BIPNFFja.js +506 -0
  342. package/dist/index-BIPNFFja.js.map +1 -0
  343. package/dist/index-BLizQDlg.js +658 -0
  344. package/dist/index-BLizQDlg.js.map +1 -0
  345. package/dist/index-BXns0-ng.cjs +2 -0
  346. package/dist/index-BXns0-ng.cjs.map +1 -0
  347. package/dist/index-BYroABPm.cjs +2 -0
  348. package/dist/index-BYroABPm.cjs.map +1 -0
  349. package/dist/index-BczVvEBZ.cjs +2 -0
  350. package/dist/index-BczVvEBZ.cjs.map +1 -0
  351. package/dist/index-BzeLQvXk.cjs +2 -0
  352. package/dist/index-BzeLQvXk.cjs.map +1 -0
  353. package/dist/index-C1rRk_50.js +273 -0
  354. package/dist/index-C1rRk_50.js.map +1 -0
  355. package/dist/index-C21TvELx.cjs +2 -0
  356. package/dist/index-C21TvELx.cjs.map +1 -0
  357. package/dist/index-CEc_9zWy.cjs +2 -0
  358. package/dist/index-CEc_9zWy.cjs.map +1 -0
  359. package/dist/index-CZbIGs8q.cjs +2 -0
  360. package/dist/index-CZbIGs8q.cjs.map +1 -0
  361. package/dist/index-CaAIPGZo.js +631 -0
  362. package/dist/index-CaAIPGZo.js.map +1 -0
  363. package/dist/index-CbVeVrla.cjs +2 -0
  364. package/dist/index-CbVeVrla.cjs.map +1 -0
  365. package/dist/index-CqzhBPuO-CfQywbdq.js +41 -0
  366. package/dist/index-CqzhBPuO-CfQywbdq.js.map +1 -0
  367. package/dist/index-CqzhBPuO-raKZqS7l.cjs +2 -0
  368. package/dist/index-CqzhBPuO-raKZqS7l.cjs.map +1 -0
  369. package/dist/index-D7ltPi18.js +26 -0
  370. package/dist/index-D7ltPi18.js.map +1 -0
  371. package/dist/index-DSnvdkHZ.js +495 -0
  372. package/dist/index-DSnvdkHZ.js.map +1 -0
  373. package/dist/index-DXmF_0ez.js +308 -0
  374. package/dist/index-DXmF_0ez.js.map +1 -0
  375. package/dist/index-Db-Yg_Ud.js +120 -0
  376. package/dist/index-Db-Yg_Ud.js.map +1 -0
  377. package/dist/index-Ds0uHjK9.cjs +2 -0
  378. package/dist/index-Ds0uHjK9.cjs.map +1 -0
  379. package/dist/index-DxagiOHo.js +707 -0
  380. package/dist/index-DxagiOHo.js.map +1 -0
  381. package/dist/index-DzdwZ2OA.js +77 -0
  382. package/dist/index-DzdwZ2OA.js.map +1 -0
  383. package/dist/index-UV9hjG_S.js +53 -0
  384. package/dist/index-UV9hjG_S.js.map +1 -0
  385. package/dist/index-a2C2Bqn2.cjs +10 -0
  386. package/dist/index-a2C2Bqn2.cjs.map +1 -0
  387. package/dist/index.d.ts +5 -2
  388. package/dist/index.js +1 -52484
  389. package/dist/index.js.map +1 -1
  390. package/dist/init-BhZylTFx.js +63 -0
  391. package/dist/init-BhZylTFx.js.map +1 -0
  392. package/dist/init-DU0ybBc_.cjs +2 -0
  393. package/dist/init-DU0ybBc_.cjs.map +1 -0
  394. package/dist/line-CPfhohvF.js +68 -0
  395. package/dist/line-CPfhohvF.js.map +1 -0
  396. package/dist/line-DHV4JwCR.cjs +2 -0
  397. package/dist/line-DHV4JwCR.cjs.map +1 -0
  398. package/dist/linear-BVckp9RD.cjs +2 -0
  399. package/dist/linear-BVckp9RD.cjs.map +1 -0
  400. package/dist/linear-DUdu7l2G.js +221 -0
  401. package/dist/linear-DUdu7l2G.js.map +1 -0
  402. package/dist/numberFormattingFunction.d.ts +22 -0
  403. package/dist/numberFormattingFunction.js +2 -0
  404. package/dist/numberFormattingFunction.js.map +1 -0
  405. package/dist/ordinal-BOeNbyae.cjs +2 -0
  406. package/dist/ordinal-BOeNbyae.cjs.map +1 -0
  407. package/dist/ordinal-w9Lu4Stb.js +62 -0
  408. package/dist/ordinal-w9Lu4Stb.js.map +1 -0
  409. package/dist/parse-DlCRUFh_.js +2768 -0
  410. package/dist/parse-DlCRUFh_.js.map +1 -0
  411. package/dist/parse-hMnG_lRV.cjs +2 -0
  412. package/dist/parse-hMnG_lRV.cjs.map +1 -0
  413. package/dist/pointer-CWRWOsrb.js +23 -0
  414. package/dist/pointer-CWRWOsrb.js.map +1 -0
  415. package/dist/pointer-Dkq5NV1q.cjs +2 -0
  416. package/dist/pointer-Dkq5NV1q.cjs.map +1 -0
  417. package/dist/pow-B5-jkdHU.cjs +2 -0
  418. package/dist/pow-B5-jkdHU.cjs.map +1 -0
  419. package/dist/pow-e8zx3AQJ.js +35 -0
  420. package/dist/pow-e8zx3AQJ.js.map +1 -0
  421. package/dist/removeOutliers.d.ts +16 -0
  422. package/dist/removeOutliers.js +2 -0
  423. package/dist/removeOutliers.js.map +1 -0
  424. package/dist/select-Bnfk0lJx.cjs +2 -0
  425. package/dist/select-Bnfk0lJx.cjs.map +1 -0
  426. package/dist/select-DKy99ogv.js +584 -0
  427. package/dist/select-DKy99ogv.js.map +1 -0
  428. package/dist/simple-statistics-flVzqVtt.js +65 -0
  429. package/dist/simple-statistics-flVzqVtt.js.map +1 -0
  430. package/dist/simple-statistics-xm8c0LQQ.cjs +2 -0
  431. package/dist/simple-statistics-xm8c0LQQ.cjs.map +1 -0
  432. package/dist/step-BZ3C8QFW.cjs +2 -0
  433. package/dist/step-BZ3C8QFW.cjs.map +1 -0
  434. package/dist/step-BrDul-H4.js +119 -0
  435. package/dist/step-BrDul-H4.js.map +1 -0
  436. package/dist/string-B8KlVSPX.js +364 -0
  437. package/dist/string-B8KlVSPX.js.map +1 -0
  438. package/dist/string-CRoCZCYa.cjs +2 -0
  439. package/dist/string-CRoCZCYa.cjs.map +1 -0
  440. package/dist/string2HTML-BX0oNw83.js +758 -0
  441. package/dist/string2HTML-BX0oNw83.js.map +1 -0
  442. package/dist/string2HTML-X4ZYX5jI.cjs +3 -0
  443. package/dist/string2HTML-X4ZYX5jI.cjs.map +1 -0
  444. package/dist/style.css +1 -1
  445. package/dist/svgDownload.d.ts +16 -0
  446. package/dist/svgDownload.js +2 -0
  447. package/dist/svgDownload.js.map +1 -0
  448. package/dist/threshold-DFfqcDMa.js +23 -0
  449. package/dist/threshold-DFfqcDMa.js.map +1 -0
  450. package/dist/threshold-DNsSUf8Q.cjs +2 -0
  451. package/dist/threshold-DNsSUf8Q.cjs.map +1 -0
  452. package/dist/time-Byw_jYQ7.cjs +2 -0
  453. package/dist/time-Byw_jYQ7.cjs.map +1 -0
  454. package/dist/time-BzJP5SPC.js +715 -0
  455. package/dist/time-BzJP5SPC.js.map +1 -0
  456. package/dist/timer-B39XOBYL.js +124 -0
  457. package/dist/timer-B39XOBYL.js.map +1 -0
  458. package/dist/timer-CKyBCVzT.cjs +2 -0
  459. package/dist/timer-CKyBCVzT.cjs.map +1 -0
  460. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js +139 -0
  461. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js.map +1 -0
  462. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs +4 -0
  463. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs.map +1 -0
  464. package/dist/transformColumnsToArray.d.ts +38 -0
  465. package/dist/transformColumnsToArray.js +2 -0
  466. package/dist/transformColumnsToArray.js.map +1 -0
  467. package/dist/transformDataForAggregation.d.ts +38 -0
  468. package/dist/transformDataForAggregation.js +2 -0
  469. package/dist/transformDataForAggregation.js.map +1 -0
  470. package/dist/transformDataForGraph.d.ts +47 -0
  471. package/dist/transformDataForGraph.js +2 -0
  472. package/dist/transformDataForGraph.js.map +1 -0
  473. package/dist/transformDataForGraphFromFile.d.ts +66 -0
  474. package/dist/transformDataForGraphFromFile.js +2 -0
  475. package/dist/transformDataForGraphFromFile.js.map +1 -0
  476. package/dist/use-in-view-CZPXmTZM.js +4645 -0
  477. package/dist/use-in-view-CZPXmTZM.js.map +1 -0
  478. package/dist/use-in-view-Dl1CsAIo.cjs +2 -0
  479. package/dist/use-in-view-Dl1CsAIo.cjs.map +1 -0
  480. package/dist/validateSchema.d.ts +68 -0
  481. package/dist/validateSchema.js +2 -0
  482. package/dist/validateSchema.js.map +1 -0
  483. package/dist/x-Dft9NVe_-DcB7wtv5.js +61 -0
  484. package/dist/x-Dft9NVe_-DcB7wtv5.js.map +1 -0
  485. package/dist/x-Dft9NVe_-LeyJu02C.cjs +27 -0
  486. package/dist/x-Dft9NVe_-LeyJu02C.cjs.map +1 -0
  487. package/dist/y-D0sAaVii.js +421 -0
  488. package/dist/y-D0sAaVii.js.map +1 -0
  489. package/dist/y-QcCbqrzx.cjs +2 -0
  490. package/dist/y-QcCbqrzx.cjs.map +1 -0
  491. package/dist/zoom-Lo7IAUfC.cjs +2 -0
  492. package/dist/zoom-Lo7IAUfC.cjs.map +1 -0
  493. package/dist/zoom-_lqdiGoI.js +1983 -0
  494. package/dist/zoom-_lqdiGoI.js.map +1 -0
  495. package/package.json +415 -4
  496. package/dist/index.cjs +0 -68
  497. package/dist/index.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadarChart.js","sources":["../node_modules/d3-shape/src/curve/radial.js","../node_modules/d3-shape/src/lineRadial.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/cardinal.js","../node_modules/d3-shape/src/curve/cardinalClosed.js","../node_modules/d3-shape/src/curve/linearClosed.js","../src/Components/Graphs/RadarChart/Graph.tsx","../src/Components/Graphs/RadarChart/index.tsx"],"sourcesContent":["import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport isEqual from 'fast-deep-equal';\r\nimport { lineRadial, curveLinearClosed, curveCardinalClosed } from 'd3-shape';\r\nimport { useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { scaleLinear } from 'd3-scale';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n RadarChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\n\r\ninterface Props {\r\n radius: number;\r\n lineColors: string[];\r\n axisLabels: (string | number)[];\r\n data: RadarChartDataType[];\r\n\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n selectedColor?: string;\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n colorDomain: string[];\r\n\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n strokeWidth: number;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n showValues: boolean;\r\n showDots: boolean;\r\n topMargin: number;\r\n bottomMargin: number;\r\n leftMargin: number;\r\n rightMargin: number;\r\n curveType: 'linear' | 'curve';\r\n noOfTicks: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n fillShape: boolean;\r\n resetSelectionOnDoubleClick: boolean;\r\n highlightedLines: (string | number)[];\r\n animate: AnimateDataType;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n radius,\r\n lineColors,\r\n tooltip,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n colorDomain,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n selectedColor,\r\n axisLabels,\r\n strokeWidth,\r\n showValues,\r\n showDots,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n curveType,\r\n noOfTicks,\r\n minValue,\r\n maxValue,\r\n resetSelectionOnDoubleClick,\r\n fillShape,\r\n highlightedLines,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const curve = curveType === 'linear' ? curveLinearClosed : curveCardinalClosed;\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const radiusWithoutMargin = Math.min(\r\n (2 * radius - leftMargin - rightMargin) / 2,\r\n (2 * radius - topMargin - bottomMargin) / 2,\r\n );\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const angleScale = scaleLinear()\r\n .domain([0, data[0].values.length])\r\n .range([0, 2 * Math.PI]);\r\n\r\n const maxVal = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.values.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.values.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n );\r\n\r\n const minVal = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.values.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.values.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n );\r\n const scale = scaleLinear().domain([minVal, maxVal]).range([0, radiusWithoutMargin]).nice();\r\n const ticksArray = scale.ticks(noOfTicks);\r\n const lineShape = lineRadial<number>()\r\n .radius(d => scale(d))\r\n .angle((_, i) => angleScale(i))\r\n .curve(curve);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${radius * 2}px`}\r\n height={`${radius * 2}px`}\r\n viewBox={`0 0 ${radius * 2} ${radius * 2}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g transform={`translate(${radiusWithoutMargin},${radiusWithoutMargin})`}>\r\n {axisLabels.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n x1={0}\r\n y1={0}\r\n x2={Math.cos(angleScale(i) - Math.PI / 2) * radiusWithoutMargin}\r\n y2={Math.sin(angleScale(i) - Math.PI / 2) * radiusWithoutMargin}\r\n key={i}\r\n className={cn(\r\n 'stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550',\r\n classNames?.xAxis?.axis,\r\n )}\r\n style={styles?.xAxis?.axis}\r\n />\r\n <text\r\n x={Math.cos(angleScale(i) - Math.PI / 2) * (radiusWithoutMargin + 6)}\r\n y={Math.sin(angleScale(i) - Math.PI / 2) * (radiusWithoutMargin + 6)}\r\n style={{\r\n textAnchor:\r\n Math.cos(angleScale(i) - Math.PI / 2) < 0\r\n ? 'end'\r\n : Math.cos(angleScale(i) - Math.PI / 2) < 0.00001\r\n ? 'middle'\r\n : 'start',\r\n ...(styles?.xAxis?.labels || ''),\r\n }}\r\n dy={\r\n Math.sin(angleScale(i) - Math.PI / 2) < 0\r\n ? 0\r\n : Math.sin(angleScale(i) - Math.PI / 2) < 0.00001\r\n ? 5\r\n : 10\r\n }\r\n className={cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs',\r\n classNames?.xAxis?.labels,\r\n )}\r\n >\r\n {d}\r\n </text>\r\n </g>\r\n ))}\r\n {ticksArray.map((d, i) => (\r\n <g key={i}>\r\n <path\r\n d={lineShape(Array(axisLabels.length).fill(d)) || ''}\r\n className={cn(\r\n 'stroke-primary-gray-500 dark:stroke-primary-gray-550',\r\n classNames?.xAxis?.gridLines,\r\n )}\r\n style={{\r\n ...styles?.xAxis?.gridLines,\r\n fill: 'none',\r\n }}\r\n />\r\n <foreignObject\r\n x={-25}\r\n y={\r\n Math.sin(-Math.PI / 2) * scale(d) > -0.0001\r\n ? Math.sin(-Math.PI / 2) * scale(d) - 7\r\n : Math.sin(-Math.PI / 2) * scale(d) - 5\r\n }\r\n width={50}\r\n height={12}\r\n >\r\n <div className='flex justify-center'>\r\n <p\r\n className={cn(\r\n 'fill-primary-gray-500 dark:fill-primary-gray-550 text-xs m-0 py-0 px-1.5 text-center leading-none bg-primary-white dark:bg-primary-gray-700',\r\n classNames?.xAxis?.labels,\r\n )}\r\n style={styles?.xAxis?.labels}\r\n >\r\n {numberFormattingFunction(d, 'NA', precision)}\r\n </p>\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ))}\r\n <AnimatePresence>\r\n {data.map((d, i) => (\r\n <motion.g\r\n key={d.label || i}\r\n variants={{\r\n initial: {\r\n opacity: mouseOverData\r\n ? d.label === mouseOverData.label\r\n ? 1\r\n : dimmedOpacity\r\n : selectedColor\r\n ? d.color\r\n ? lineColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedLines.length !== 0\r\n ? d.label\r\n ? highlightedLines.indexOf(d.label) !== -1\r\n ? 1\r\n : 0.3\r\n : 0.3\r\n : 1,\r\n },\r\n whileInView: {\r\n opacity: mouseOverData\r\n ? d.label === mouseOverData.label\r\n ? 1\r\n : dimmedOpacity\r\n : selectedColor\r\n ? d.color\r\n ? lineColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedLines.length !== 0\r\n ? d.label\r\n ? highlightedLines.indexOf(d.label) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n 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 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 >\r\n <motion.path\r\n d={lineShape(d.values) || ''}\r\n variants={{\r\n initial: { d: lineShape(d.values.map(_el => 0)) || '' },\r\n whileInView: {\r\n d: lineShape(d.values) || '',\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n style={{\r\n stroke:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d.color)],\r\n fill: fillShape\r\n ? data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d.color)]\r\n : 'none',\r\n fillOpacity: 0.1,\r\n strokeWidth,\r\n }}\r\n />\r\n <g>\r\n {d.values.map((el, j) => (\r\n <g key={j}>\r\n {!checkIfNullOrUndefined(el) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n cx={Math.cos(angleScale(j) - Math.PI / 2) * scale(el)}\r\n cy={Math.sin(angleScale(j) - Math.PI / 2) * scale(el)}\r\n r={4}\r\n style={{\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d.color)],\r\n }}\r\n variants={{\r\n initial: { cx: 0, cy: 0, opacity: 0 },\r\n whileInView: {\r\n cx: Math.cos(angleScale(j) - Math.PI / 2) * scale(el),\r\n cy: Math.sin(angleScale(j) - Math.PI / 2) * scale(el),\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n x={Math.cos(angleScale(j) - Math.PI / 2) * (scale(el) + 6)}\r\n y={Math.sin(angleScale(j) - Math.PI / 2) * (scale(el) + 6)}\r\n style={{\r\n fill: lineColors[i],\r\n textAnchor:\r\n Math.cos(angleScale(j) - Math.PI / 2) < 0\r\n ? 'end'\r\n : Math.cos(angleScale(j) - Math.PI / 2) < 0.00001\r\n ? 'middle'\r\n : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n dy={\r\n Math.sin(angleScale(j) - Math.PI / 2) < 0\r\n ? 10\r\n : Math.sin(angleScale(j) - Math.PI / 2) < 0.00001\r\n ? 0\r\n : 0\r\n }\r\n className={cn(\r\n 'graph-value text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: {\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {numberFormattingFunction(el, 'NA', precision)}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n </g>\r\n ))}\r\n </g>\r\n </motion.g>\r\n ))}\r\n </AnimatePresence>\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport uniqBy from 'lodash.uniqby';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n RadarChartDataType,\r\n Languages,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: RadarChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for each line */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Radius of the radar chart */\r\n radius?: number;\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\r\n // Values and Ticks\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Stroke width of the line */\r\n strokeWidth?: number;\r\n /** Toggle is the shape is filled or not */\r\n fillShape?: boolean;\r\n /** No. of ticks on the x-axis */\r\n noOfTicks?: number;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedLines?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Labels for the axes */\r\n axisLabels: (string | number)[];\r\n /** Curve type for the line */\r\n curveType?: 'linear' | 'curve';\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\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 RadarChart(props: Props) {\r\n const {\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n footNote,\r\n radius,\r\n data,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n tooltip,\r\n onSeriesMouseOver,\r\n graphID,\r\n onSeriesMouseClick,\r\n topMargin = 75,\r\n bottomMargin = 75,\r\n leftMargin = 75,\r\n rightMargin = 75,\r\n graphDownload = false,\r\n dataDownload = false,\r\n colorDomain,\r\n language = 'en',\r\n theme = 'light',\r\n highlightedLines = [],\r\n width,\r\n height,\r\n minHeight = 0,\r\n strokeWidth = 2,\r\n relativeHeight,\r\n ariaLabel,\r\n colorLegendTitle,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n showNAColor = true,\r\n axisLabels,\r\n showDots = true,\r\n showValues = false,\r\n curveType = 'curve',\r\n noOfTicks = 5,\r\n minValue,\r\n maxValue,\r\n fillShape = false,\r\n resetSelectionOnDoubleClick = true,\r\n animate = false,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n } = props;\r\n\r\n const [graphRadius, setGraphRadius] = useState(0);\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 || 420);\r\n setSvgHeight(height || entries[0].target.clientHeight || 420);\r\n setGraphRadius(\r\n (Math.min(\r\n ...[\r\n width || entries[0].target.clientWidth || 620,\r\n height || entries[0].target.clientHeight || 480,\r\n ],\r\n ) || 420) / 2,\r\n );\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 420);\r\n setSvgWidth(graphDiv.current.clientWidth || 420);\r\n setGraphRadius(\r\n (Math.min(...[graphDiv.current.clientWidth, graphDiv.current.clientHeight]) || 420) / 2,\r\n );\r\n if (!width || !radius) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height, radius]);\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n minHeight: 'inherit',\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 donut or pie chart chart. ${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 gap-2 w-full 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\r\n className='flex grow flex-col justify-center items-stretch gap-8 flex-wrap'\r\n style={{\r\n width: width ? `${width}px` : '100%',\r\n }}\r\n >\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale && data.filter(el => el.color).length !== 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n colorDomain ||\r\n (uniqBy(\r\n data.filter(el => el.color),\r\n 'color',\r\n ).map(d => d.color) as string[])\r\n }\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : null}\r\n <div\r\n className={`flex ${\r\n width ? 'grow-0' : 'grow'\r\n } items-center justify-center leading-0`}\r\n style={{\r\n width: width ? `${width}px` : '100%',\r\n height: height\r\n ? `${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 )}px`\r\n : 'auto',\r\n }}\r\n ref={graphDiv}\r\n aria-label='Graph area'\r\n >\r\n <div className='w-full flex justify-center leading-0'>\r\n {radius || graphRadius ? (\r\n <Graph\r\n data={data}\r\n lineColors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) ||\r\n Colors[theme].categoricalColors.colors\r\n }\r\n radius={radius || graphRadius}\r\n tooltip={tooltip}\r\n colorDomain={\r\n colorDomain ||\r\n (uniqBy(\r\n data.filter(el => el.color),\r\n 'color',\r\n ).map(d => d.color) as string[])\r\n }\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n selectedColor={selectedColor}\r\n axisLabels={axisLabels}\r\n strokeWidth={strokeWidth}\r\n showValues={showValues}\r\n showDots={showDots}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n curveType={curveType}\r\n noOfTicks={noOfTicks}\r\n minValue={minValue}\r\n maxValue={maxValue}\r\n fillShape={fillShape}\r\n highlightedLines={highlightedLines}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n ) : null}\r\n </div>\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 ) : (\r\n <div />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["curveRadialLinear","curveRadial","curveLinear","Radial","curve","a","r","radial","context","lineRadial","l","c","_","lineRadial$1","line","noop","point","that","x","y","Cardinal","tension","custom","cardinal","CardinalClosed","curveCardinalClosed","LinearClosed","curveLinearClosed","Graph","props","data","radius","lineColors","tooltip","onSeriesMouseOver","onSeriesMouseClick","colorDomain","detailsOnClick","styles","classNames","selectedColor","axisLabels","strokeWidth","showValues","showDots","rightMargin","topMargin","bottomMargin","leftMargin","curveType","noOfTicks","minValue","maxValue","resetSelectionOnDoubleClick","fillShape","highlightedLines","animate","dimmedOpacity","precision","customLayers","svgRef","useRef","isInView","useInView","margin","radiusWithoutMargin","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","angleScale","scaleLinear","maxVal","checkIfNullOrUndefined","d","minVal","scale","ticksArray","lineShape","i","jsxs","Fragment","jsx","motion","cn","numberFormattingFunction","AnimatePresence","event","isEqual","_el","el","Colors","j","Tooltip","Modal","string2HTML","RadarChart","graphTitle","colors","sources","graphDescription","footNote","showColorScale","padding","backgroundColor","graphID","graphDownload","dataDownload","language","theme","width","height","minHeight","relativeHeight","ariaLabel","colorLegendTitle","showNAColor","graphRadius","setGraphRadius","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","useEffect","resizeObserver","entries","GraphHeader","EmptyState","ColorLegendWithMouseOver","uniqBy","GraphFooter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -0,0 +1,129 @@
1
+ import { j as e } from "./index-BHm2KTjD-2e-Fu8L-.js";
2
+ import { c as x } from "./Typography-XJoSE-By.js";
3
+ import { m as d } from "./use-in-view-CZPXmTZM.js";
4
+ function g(c) {
5
+ const { text: r, x1: a, x2: n, y: t, classNames: l, styles: s, color: i, animate: o, isInView: y } = c;
6
+ return r ? /* @__PURE__ */ e.jsxs(
7
+ d.g,
8
+ {
9
+ exit: { opacity: 0, transition: { duration: o.duration } },
10
+ variants: {
11
+ initial: {
12
+ opacity: 0
13
+ },
14
+ whileInView: {
15
+ opacity: 1,
16
+ transition: { duration: o.duration }
17
+ }
18
+ },
19
+ initial: "initial",
20
+ animate: y ? "whileInView" : "initial",
21
+ children: [
22
+ /* @__PURE__ */ e.jsx(
23
+ "line",
24
+ {
25
+ className: x.cn(
26
+ "undp-ref-line",
27
+ i ? void 0 : "stroke-primary-gray-700 dark:stroke-primary-gray-300",
28
+ l?.line
29
+ ),
30
+ style: {
31
+ ...i && { stroke: i },
32
+ ...s?.line || {}
33
+ },
34
+ y1: t,
35
+ y2: t,
36
+ x1: a,
37
+ x2: n
38
+ }
39
+ ),
40
+ /* @__PURE__ */ e.jsx(
41
+ "text",
42
+ {
43
+ x: n,
44
+ y: t,
45
+ style: {
46
+ ...i && { fill: i },
47
+ textAnchor: "end",
48
+ ...s?.text || {}
49
+ },
50
+ className: x.cn(
51
+ "text-xs font-bold",
52
+ i ? void 0 : " fill-primary-gray-700 dark:fill-primary-gray-300",
53
+ l?.text
54
+ ),
55
+ dy: -5,
56
+ children: r
57
+ }
58
+ )
59
+ ]
60
+ },
61
+ `${a}-${n}-${t}`
62
+ ) : null;
63
+ }
64
+ function h(c) {
65
+ const { text: r, y1: a, y2: n, x: t, classNames: l, styles: s, color: i, textSide: o, animate: y, isInView: m } = c;
66
+ return r ? /* @__PURE__ */ e.jsxs(
67
+ d.g,
68
+ {
69
+ exit: { opacity: 0, transition: { duration: y.duration } },
70
+ variants: {
71
+ initial: {
72
+ opacity: 0
73
+ },
74
+ whileInView: {
75
+ opacity: 1,
76
+ transition: { duration: y.duration }
77
+ }
78
+ },
79
+ initial: "initial",
80
+ animate: m ? "whileInView" : "initial",
81
+ children: [
82
+ /* @__PURE__ */ e.jsx(
83
+ "line",
84
+ {
85
+ className: x.cn(
86
+ "undp-ref-line",
87
+ i ? void 0 : "stroke-primary-gray-700 dark:stroke-primary-gray-300",
88
+ l?.line
89
+ ),
90
+ style: {
91
+ ...i && { stroke: i },
92
+ ...s?.line || {}
93
+ },
94
+ y1: a,
95
+ y2: n,
96
+ x1: t,
97
+ x2: t
98
+ }
99
+ ),
100
+ /* @__PURE__ */ e.jsx(
101
+ "text",
102
+ {
103
+ x: t,
104
+ y: a,
105
+ style: {
106
+ ...i && { fill: i },
107
+ textAnchor: o === "left" ? "end" : "start",
108
+ ...s?.text || {}
109
+ },
110
+ className: x.cn(
111
+ "text-xs font-bold",
112
+ i ? void 0 : "fill-primary-gray-700 dark:fill-primary-gray-300",
113
+ l?.text
114
+ ),
115
+ dy: 12.5,
116
+ dx: o === "left" ? -5 : 5,
117
+ children: r
118
+ }
119
+ )
120
+ ]
121
+ },
122
+ `${a}-${n}-${t}`
123
+ ) : null;
124
+ }
125
+ export {
126
+ g as R,
127
+ h as a
128
+ };
129
+ //# sourceMappingURL=ReferenceLine-BgDdQbDI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceLine-BgDdQbDI.js","sources":["../src/Components/Elements/ReferenceLine.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\n\r\ninterface RefLineYProps {\r\n text?: string;\r\n color?: string;\r\n y: number;\r\n x1: number;\r\n x2: number;\r\n classNames?: {\r\n line?: string;\r\n text?: string;\r\n };\r\n styles?: {\r\n line?: React.CSSProperties;\r\n text?: React.CSSProperties;\r\n };\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function RefLineY(props: RefLineYProps) {\r\n const { text, x1, x2, y, classNames, styles, color, animate, isInView } = props;\r\n if (!text) return null;\r\n return (\r\n <motion.g\r\n key={`${x1}-${x2}-${y}`}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n },\r\n whileInView: {\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 <line\r\n className={cn(\r\n 'undp-ref-line',\r\n !color ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300' : undefined,\r\n classNames?.line,\r\n )}\r\n style={{\r\n ...(color && { stroke: color }),\r\n ...(styles?.line || {}),\r\n }}\r\n y1={y}\r\n y2={y}\r\n x1={x1}\r\n x2={x2}\r\n />\r\n <text\r\n x={x2}\r\n y={y}\r\n style={{\r\n ...(color && { fill: color }),\r\n textAnchor: 'end',\r\n ...(styles?.text || {}),\r\n }}\r\n className={cn(\r\n 'text-xs font-bold',\r\n !color ? ' fill-primary-gray-700 dark:fill-primary-gray-300' : undefined,\r\n classNames?.text,\r\n )}\r\n dy={-5}\r\n >\r\n {text}\r\n </text>\r\n </motion.g>\r\n );\r\n}\r\n\r\ninterface RefLineXProps {\r\n text?: string;\r\n color?: string;\r\n x: number;\r\n y1: number;\r\n y2: number;\r\n textSide: 'left' | 'right';\r\n classNames?: {\r\n line?: string;\r\n text?: string;\r\n };\r\n styles?: {\r\n line?: React.CSSProperties;\r\n text?: React.CSSProperties;\r\n };\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function RefLineX(props: RefLineXProps) {\r\n const { text, y1, y2, x, classNames, styles, color, textSide, animate, isInView } = props;\r\n if (!text) return null;\r\n return (\r\n <motion.g\r\n key={`${y1}-${y2}-${x}`}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n },\r\n whileInView: {\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 <line\r\n className={cn(\r\n 'undp-ref-line',\r\n !color ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300' : undefined,\r\n classNames?.line,\r\n )}\r\n style={{\r\n ...(color && { stroke: color }),\r\n ...(styles?.line || {}),\r\n }}\r\n y1={y1}\r\n y2={y2}\r\n x1={x}\r\n x2={x}\r\n />\r\n <text\r\n x={x}\r\n y={y1}\r\n style={{\r\n ...(color && { fill: color }),\r\n textAnchor: textSide === 'left' ? 'end' : 'start',\r\n ...(styles?.text || {}),\r\n }}\r\n className={cn(\r\n 'text-xs font-bold',\r\n !color ? 'fill-primary-gray-700 dark:fill-primary-gray-300' : undefined,\r\n classNames?.text,\r\n )}\r\n dy={12.5}\r\n dx={textSide === 'left' ? -5 : 5}\r\n >\r\n {text}\r\n </text>\r\n </motion.g>\r\n );\r\n}\r\n"],"names":["RefLineY","props","text","x1","x2","y","classNames","styles","color","animate","isInView","jsxs","motion","jsx","cn","RefLineX","y1","y2","x","textSide"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const r=require("./index-BHm2KTjD-D8FylaKc.cjs"),y=require("./Typography-CDR-DAHH.cjs"),d=require("./use-in-view-Dl1CsAIo.cjs");function p(c){const{text:a,x1:e,x2:n,y:t,classNames:s,styles:o,color:i,animate:l,isInView:x}=c;return a?r.jsxRuntimeExports.jsxs(d.motion.g,{exit:{opacity:0,transition:{duration:l.duration}},variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:l.duration}}},initial:"initial",animate:x?"whileInView":"initial",children:[r.jsxRuntimeExports.jsx("line",{className:y.cnExports.cn("undp-ref-line",i?void 0:"stroke-primary-gray-700 dark:stroke-primary-gray-300",s?.line),style:{...i&&{stroke:i},...o?.line||{}},y1:t,y2:t,x1:e,x2:n}),r.jsxRuntimeExports.jsx("text",{x:n,y:t,style:{...i&&{fill:i},textAnchor:"end",...o?.text||{}},className:y.cnExports.cn("text-xs font-bold",i?void 0:" fill-primary-gray-700 dark:fill-primary-gray-300",s?.text),dy:-5,children:a})]},`${e}-${n}-${t}`):null}function m(c){const{text:a,y1:e,y2:n,x:t,classNames:s,styles:o,color:i,textSide:l,animate:x,isInView:u}=c;return a?r.jsxRuntimeExports.jsxs(d.motion.g,{exit:{opacity:0,transition:{duration:x.duration}},variants:{initial:{opacity:0},whileInView:{opacity:1,transition:{duration:x.duration}}},initial:"initial",animate:u?"whileInView":"initial",children:[r.jsxRuntimeExports.jsx("line",{className:y.cnExports.cn("undp-ref-line",i?void 0:"stroke-primary-gray-700 dark:stroke-primary-gray-300",s?.line),style:{...i&&{stroke:i},...o?.line||{}},y1:e,y2:n,x1:t,x2:t}),r.jsxRuntimeExports.jsx("text",{x:t,y:e,style:{...i&&{fill:i},textAnchor:l==="left"?"end":"start",...o?.text||{}},className:y.cnExports.cn("text-xs font-bold",i?void 0:"fill-primary-gray-700 dark:fill-primary-gray-300",s?.text),dy:12.5,dx:l==="left"?-5:5,children:a})]},`${e}-${n}-${t}`):null}exports.RefLineX=m;exports.RefLineY=p;
2
+ //# sourceMappingURL=ReferenceLine-Bsb5jeE4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceLine-Bsb5jeE4.cjs","sources":["../src/Components/Elements/ReferenceLine.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\n\r\ninterface RefLineYProps {\r\n text?: string;\r\n color?: string;\r\n y: number;\r\n x1: number;\r\n x2: number;\r\n classNames?: {\r\n line?: string;\r\n text?: string;\r\n };\r\n styles?: {\r\n line?: React.CSSProperties;\r\n text?: React.CSSProperties;\r\n };\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function RefLineY(props: RefLineYProps) {\r\n const { text, x1, x2, y, classNames, styles, color, animate, isInView } = props;\r\n if (!text) return null;\r\n return (\r\n <motion.g\r\n key={`${x1}-${x2}-${y}`}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n },\r\n whileInView: {\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 <line\r\n className={cn(\r\n 'undp-ref-line',\r\n !color ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300' : undefined,\r\n classNames?.line,\r\n )}\r\n style={{\r\n ...(color && { stroke: color }),\r\n ...(styles?.line || {}),\r\n }}\r\n y1={y}\r\n y2={y}\r\n x1={x1}\r\n x2={x2}\r\n />\r\n <text\r\n x={x2}\r\n y={y}\r\n style={{\r\n ...(color && { fill: color }),\r\n textAnchor: 'end',\r\n ...(styles?.text || {}),\r\n }}\r\n className={cn(\r\n 'text-xs font-bold',\r\n !color ? ' fill-primary-gray-700 dark:fill-primary-gray-300' : undefined,\r\n classNames?.text,\r\n )}\r\n dy={-5}\r\n >\r\n {text}\r\n </text>\r\n </motion.g>\r\n );\r\n}\r\n\r\ninterface RefLineXProps {\r\n text?: string;\r\n color?: string;\r\n x: number;\r\n y1: number;\r\n y2: number;\r\n textSide: 'left' | 'right';\r\n classNames?: {\r\n line?: string;\r\n text?: string;\r\n };\r\n styles?: {\r\n line?: React.CSSProperties;\r\n text?: React.CSSProperties;\r\n };\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function RefLineX(props: RefLineXProps) {\r\n const { text, y1, y2, x, classNames, styles, color, textSide, animate, isInView } = props;\r\n if (!text) return null;\r\n return (\r\n <motion.g\r\n key={`${y1}-${y2}-${x}`}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n },\r\n whileInView: {\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 <line\r\n className={cn(\r\n 'undp-ref-line',\r\n !color ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300' : undefined,\r\n classNames?.line,\r\n )}\r\n style={{\r\n ...(color && { stroke: color }),\r\n ...(styles?.line || {}),\r\n }}\r\n y1={y1}\r\n y2={y2}\r\n x1={x}\r\n x2={x}\r\n />\r\n <text\r\n x={x}\r\n y={y1}\r\n style={{\r\n ...(color && { fill: color }),\r\n textAnchor: textSide === 'left' ? 'end' : 'start',\r\n ...(styles?.text || {}),\r\n }}\r\n className={cn(\r\n 'text-xs font-bold',\r\n !color ? 'fill-primary-gray-700 dark:fill-primary-gray-300' : undefined,\r\n classNames?.text,\r\n )}\r\n dy={12.5}\r\n dx={textSide === 'left' ? -5 : 5}\r\n >\r\n {text}\r\n </text>\r\n </motion.g>\r\n );\r\n}\r\n"],"names":["RefLineY","props","text","x1","x2","y","classNames","styles","color","animate","isInView","jsxs","motion","jsx","cn","RefLineX","y1","y2","x","textSide"],"mappings":"6IAuBO,SAASA,EAASC,EAAsB,CAC7C,KAAM,CAAE,KAAAC,EAAM,GAAAC,EAAI,GAAAC,EAAI,EAAAC,EAAG,WAAAC,EAAY,OAAAC,EAAQ,MAAAC,EAAO,QAAAC,EAAS,SAAAC,CAAA,EAAaT,EAC1E,OAAKC,EAEHS,EAAAA,kBAAAA,KAACC,EAAAA,OAAO,EAAP,CAEC,KAAM,CAAE,QAAS,EAAG,WAAY,CAAE,SAAUH,EAAQ,SAAS,EAC7D,SAAU,CACR,QAAS,CACP,QAAS,CAAA,EAEX,YAAa,CACX,QAAS,EACT,WAAY,CAAE,SAAUA,EAAQ,QAAA,CAAS,CAC3C,EAEF,QAAQ,UACR,QAASC,EAAW,cAAgB,UAEpC,SAAA,CAAAG,EAAAA,kBAAAA,IAAC,OAAA,CACC,UAAWC,EAAAA,UAAAA,GACT,gBACCN,EAAiE,OAAzD,uDACTF,GAAY,IAAA,EAEd,MAAO,CACL,GAAIE,GAAS,CAAE,OAAQA,CAAA,EACvB,GAAID,GAAQ,MAAQ,CAAA,CAAC,EAEvB,GAAIF,EACJ,GAAIA,EACJ,GAAAF,EACA,GAAAC,CAAA,CAAA,EAEFS,EAAAA,kBAAAA,IAAC,OAAA,CACC,EAAGT,EACH,EAAAC,EACA,MAAO,CACL,GAAIG,GAAS,CAAE,KAAMA,CAAA,EACrB,WAAY,MACZ,GAAID,GAAQ,MAAQ,CAAA,CAAC,EAEvB,UAAWO,EAAAA,UAAAA,GACT,oBACCN,EAA8D,OAAtD,oDACTF,GAAY,IAAA,EAEd,GAAI,GAEH,SAAAJ,CAAA,CAAA,CACH,CAAA,EA7CK,GAAGC,CAAE,IAAIC,CAAE,IAAIC,CAAC,EAAA,EAHP,IAmDpB,CAqBO,SAASU,EAASd,EAAsB,CAC7C,KAAM,CAAE,KAAAC,EAAM,GAAAc,EAAI,GAAAC,EAAI,EAAAC,EAAG,WAAAZ,EAAY,OAAAC,EAAQ,MAAAC,EAAO,SAAAW,EAAU,QAAAV,EAAS,SAAAC,CAAA,EAAaT,EACpF,OAAKC,EAEHS,EAAAA,kBAAAA,KAACC,EAAAA,OAAO,EAAP,CAEC,KAAM,CAAE,QAAS,EAAG,WAAY,CAAE,SAAUH,EAAQ,SAAS,EAC7D,SAAU,CACR,QAAS,CACP,QAAS,CAAA,EAEX,YAAa,CACX,QAAS,EACT,WAAY,CAAE,SAAUA,EAAQ,QAAA,CAAS,CAC3C,EAEF,QAAQ,UACR,QAASC,EAAW,cAAgB,UAEpC,SAAA,CAAAG,EAAAA,kBAAAA,IAAC,OAAA,CACC,UAAWC,EAAAA,UAAAA,GACT,gBACCN,EAAiE,OAAzD,uDACTF,GAAY,IAAA,EAEd,MAAO,CACL,GAAIE,GAAS,CAAE,OAAQA,CAAA,EACvB,GAAID,GAAQ,MAAQ,CAAA,CAAC,EAEvB,GAAAS,EACA,GAAAC,EACA,GAAIC,EACJ,GAAIA,CAAA,CAAA,EAENL,EAAAA,kBAAAA,IAAC,OAAA,CACC,EAAAK,EACA,EAAGF,EACH,MAAO,CACL,GAAIR,GAAS,CAAE,KAAMA,CAAA,EACrB,WAAYW,IAAa,OAAS,MAAQ,QAC1C,GAAIZ,GAAQ,MAAQ,CAAA,CAAC,EAEvB,UAAWO,EAAAA,UAAAA,GACT,oBACCN,EAA6D,OAArD,mDACTF,GAAY,IAAA,EAEd,GAAI,KACJ,GAAIa,IAAa,OAAS,GAAK,EAE9B,SAAAjB,CAAA,CAAA,CACH,CAAA,EA9CK,GAAGc,CAAE,IAAIC,CAAE,IAAIC,CAAC,EAAA,EAHP,IAoDpB"}
@@ -0,0 +1,2 @@
1
+ "use strict";const i=require("./index-BHm2KTjD-D8FylaKc.cjs"),p=require("./Typography-CDR-DAHH.cjs"),h=require("./generateRandomString-B5zBiJzS.cjs"),g=require("./index-a2C2Bqn2.cjs"),j=require("./use-in-view-Dl1CsAIo.cjs");function y(a){const{color:e,x1:n,x2:o,y1:t,y2:x,className:c,style:l,animate:r,isInView:u,graphWidth:d,graphHeight:m}=a,s=h.generateRandomString(8);return i.jsxRuntimeExports.jsxs("g",{children:[i.jsxRuntimeExports.jsx("defs",{children:i.jsxRuntimeExports.jsx("clipPath",{id:s,children:i.jsxRuntimeExports.jsx("rect",{x:"0",y:"0",width:d,height:m})})}),i.jsxRuntimeExports.jsx(g.AnimatePresence,{children:i.jsxRuntimeExports.jsx(j.motion.line,{clipPath:`url(#${s})`,className:p.cnExports.cn("undp-ref-line",e?void 0:"stroke-primary-gray-700 dark:stroke-primary-gray-300",c),style:{...e&&{stroke:e},fill:"none",...l||{}},exit:{opacity:0,transition:{duration:r.duration}},variants:{initial:{y1:t,y2:t,x1:n,x2:n},whileInView:{y1:t,y2:x,x1:n,x2:o,transition:{duration:r.duration}}},initial:"initial",animate:u?"whileInView":"initial"})})]})}exports.RegressionLine=y;
2
+ //# sourceMappingURL=RegressionLine-BfpCuD7B.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegressionLine-BfpCuD7B.cjs","sources":["../src/Components/Elements/RegressionLine.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\r\n\r\ninterface Props {\r\n color?: string;\r\n y1: number;\r\n y2: number;\r\n x1: number;\r\n x2: number;\r\n graphWidth: number;\r\n graphHeight: number;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function RegressionLine(props: Props) {\r\n const { color, x1, x2, y1, y2, className, style, animate, isInView, graphWidth, graphHeight } =\r\n props;\r\n const id = generateRandomString(8);\r\n return (\r\n <g>\r\n <defs>\r\n <clipPath id={id}>\r\n <rect x='0' y='0' width={graphWidth} height={graphHeight} />\r\n </clipPath>\r\n </defs>\r\n <AnimatePresence>\r\n <motion.line\r\n clipPath={`url(#${id})`}\r\n className={cn(\r\n 'undp-ref-line',\r\n !color ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300' : undefined,\r\n className,\r\n )}\r\n style={{\r\n ...(color && { stroke: color }),\r\n fill: 'none',\r\n ...(style || {}),\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n y1,\r\n y2: y1,\r\n x1,\r\n x2: x1,\r\n },\r\n whileInView: {\r\n y1,\r\n y2,\r\n x1,\r\n x2,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </AnimatePresence>\r\n </g>\r\n );\r\n}\r\n"],"names":["RegressionLine","props","color","x1","x2","y1","y2","className","style","animate","isInView","graphWidth","graphHeight","id","generateRandomString","jsx","AnimatePresence","motion","cn"],"mappings":"gOAoBO,SAASA,EAAeC,EAAc,CAC3C,KAAM,CAAE,MAAAC,EAAO,GAAAC,EAAI,GAAAC,EAAI,GAAAC,EAAI,GAAAC,EAAI,UAAAC,EAAW,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,WAAAC,EAAY,YAAAC,CAAA,EAC9EX,EACIY,EAAKC,EAAAA,qBAAqB,CAAC,EACjC,gCACG,IAAA,CACC,SAAA,CAAAC,wBAAC,OAAA,CACC,SAAAA,EAAAA,kBAAAA,IAAC,WAAA,CAAS,GAAAF,EACR,iCAAC,OAAA,CAAK,EAAE,IAAI,EAAE,IAAI,MAAOF,EAAY,OAAQC,CAAA,CAAa,EAC5D,EACF,0BACCI,EAAAA,gBAAA,CACC,SAAAD,EAAAA,kBAAAA,IAACE,EAAAA,OAAO,KAAP,CACC,SAAU,QAAQJ,CAAE,IACpB,UAAWK,EAAAA,UAAAA,GACT,gBACChB,EAAiE,OAAzD,uDACTK,CAAA,EAEF,MAAO,CACL,GAAIL,GAAS,CAAE,OAAQA,CAAA,EACvB,KAAM,OACN,GAAIM,GAAS,CAAA,CAAC,EAEhB,KAAM,CAAE,QAAS,EAAG,WAAY,CAAE,SAAUC,EAAQ,SAAS,EAC7D,SAAU,CACR,QAAS,CACP,GAAAJ,EACA,GAAIA,EACJ,GAAAF,EACA,GAAIA,CAAA,EAEN,YAAa,CACX,GAAAE,EACA,GAAAC,EACA,GAAAH,EACA,GAAAC,EACA,WAAY,CAAE,SAAUK,EAAQ,QAAA,CAAS,CAC3C,EAEF,QAAQ,UACR,QAASC,EAAW,cAAgB,SAAA,CAAA,CACtC,CACF,CAAA,EACF,CAEJ"}
@@ -0,0 +1,49 @@
1
+ import { j as i } from "./index-BHm2KTjD-2e-Fu8L-.js";
2
+ import { c as x } from "./Typography-XJoSE-By.js";
3
+ import { g } from "./generateRandomString-za3IQGfQ.js";
4
+ import { A as y } from "./index-Db-Yg_Ud.js";
5
+ import { m as f } from "./use-in-view-CZPXmTZM.js";
6
+ function I(s) {
7
+ const { color: r, x1: t, x2: o, y1: n, y2: l, className: m, style: c, animate: e, isInView: d, graphWidth: p, graphHeight: h } = s, a = g(8);
8
+ return /* @__PURE__ */ i.jsxs("g", { children: [
9
+ /* @__PURE__ */ i.jsx("defs", { children: /* @__PURE__ */ i.jsx("clipPath", { id: a, children: /* @__PURE__ */ i.jsx("rect", { x: "0", y: "0", width: p, height: h }) }) }),
10
+ /* @__PURE__ */ i.jsx(y, { children: /* @__PURE__ */ i.jsx(
11
+ f.line,
12
+ {
13
+ clipPath: `url(#${a})`,
14
+ className: x.cn(
15
+ "undp-ref-line",
16
+ r ? void 0 : "stroke-primary-gray-700 dark:stroke-primary-gray-300",
17
+ m
18
+ ),
19
+ style: {
20
+ ...r && { stroke: r },
21
+ fill: "none",
22
+ ...c || {}
23
+ },
24
+ exit: { opacity: 0, transition: { duration: e.duration } },
25
+ variants: {
26
+ initial: {
27
+ y1: n,
28
+ y2: n,
29
+ x1: t,
30
+ x2: t
31
+ },
32
+ whileInView: {
33
+ y1: n,
34
+ y2: l,
35
+ x1: t,
36
+ x2: o,
37
+ transition: { duration: e.duration }
38
+ }
39
+ },
40
+ initial: "initial",
41
+ animate: d ? "whileInView" : "initial"
42
+ }
43
+ ) })
44
+ ] });
45
+ }
46
+ export {
47
+ I as R
48
+ };
49
+ //# sourceMappingURL=RegressionLine-cSljpHaE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegressionLine-cSljpHaE.js","sources":["../src/Components/Elements/RegressionLine.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\r\n\r\ninterface Props {\r\n color?: string;\r\n y1: number;\r\n y2: number;\r\n x1: number;\r\n x2: number;\r\n graphWidth: number;\r\n graphHeight: number;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function RegressionLine(props: Props) {\r\n const { color, x1, x2, y1, y2, className, style, animate, isInView, graphWidth, graphHeight } =\r\n props;\r\n const id = generateRandomString(8);\r\n return (\r\n <g>\r\n <defs>\r\n <clipPath id={id}>\r\n <rect x='0' y='0' width={graphWidth} height={graphHeight} />\r\n </clipPath>\r\n </defs>\r\n <AnimatePresence>\r\n <motion.line\r\n clipPath={`url(#${id})`}\r\n className={cn(\r\n 'undp-ref-line',\r\n !color ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300' : undefined,\r\n className,\r\n )}\r\n style={{\r\n ...(color && { stroke: color }),\r\n fill: 'none',\r\n ...(style || {}),\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n y1,\r\n y2: y1,\r\n x1,\r\n x2: x1,\r\n },\r\n whileInView: {\r\n y1,\r\n y2,\r\n x1,\r\n x2,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </AnimatePresence>\r\n </g>\r\n );\r\n}\r\n"],"names":["RegressionLine","props","color","x1","x2","y1","y2","className","style","animate","isInView","graphWidth","graphHeight","id","generateRandomString","jsx","AnimatePresence","motion","cn"],"mappings":";;;;;AAoBO,SAASA,EAAeC,GAAc;AAC3C,QAAM,EAAE,OAAAC,GAAO,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,WAAAC,GAAW,OAAAC,GAAO,SAAAC,GAAS,UAAAC,GAAU,YAAAC,GAAY,aAAAC,EAAA,IAC9EX,GACIY,IAAKC,EAAqB,CAAC;AACjC,gCACG,KAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,MAAC,QAAA,EACC,UAAAA,gBAAAA,EAAAA,IAAC,YAAA,EAAS,IAAAF,GACR,gCAAC,QAAA,EAAK,GAAE,KAAI,GAAE,KAAI,OAAOF,GAAY,QAAQC,EAAA,CAAa,GAC5D,GACF;AAAA,0BACCI,GAAA,EACC,UAAAD,gBAAAA,EAAAA;AAAAA,MAACE,EAAO;AAAA,MAAP;AAAA,QACC,UAAU,QAAQJ,CAAE;AAAA,QACpB,WAAWK,EAAAA;AAAAA,UACT;AAAA,UACChB,IAAiE,SAAzD;AAAA,UACTK;AAAA,QAAA;AAAA,QAEF,OAAO;AAAA,UACL,GAAIL,KAAS,EAAE,QAAQA,EAAA;AAAA,UACvB,MAAM;AAAA,UACN,GAAIM,KAAS,CAAA;AAAA,QAAC;AAAA,QAEhB,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,UAAUC,EAAQ,WAAS;AAAA,QAC7D,UAAU;AAAA,UACR,SAAS;AAAA,YACP,IAAAJ;AAAA,YACA,IAAIA;AAAA,YACJ,IAAAF;AAAA,YACA,IAAIA;AAAA,UAAA;AAAA,UAEN,aAAa;AAAA,YACX,IAAAE;AAAA,YACA,IAAAC;AAAA,YACA,IAAAH;AAAA,YACA,IAAAC;AAAA,YACA,YAAY,EAAE,UAAUK,EAAQ,SAAA;AAAA,UAAS;AAAA,QAC3C;AAAA,QAEF,SAAQ;AAAA,QACR,SAASC,IAAW,gBAAgB;AAAA,MAAA;AAAA,IAAA,EACtC,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,15 @@
1
+ import { JSX } from 'react';
2
+ import { JSX as JSX_2 } from 'react/jsx-runtime';
3
+
4
+ declare interface Props {
5
+ buttonContent?: string | JSX.Element;
6
+ buttonType?: 'primary' | 'primary-without-icon' | 'secondary' | 'secondary-without-icon' | 'tertiary';
7
+ nodeID: string | HTMLElement;
8
+ filename?: string;
9
+ buttonSmall?: boolean;
10
+ className?: string;
11
+ }
12
+
13
+ export declare function SVGDownloadButton(props: Props): JSX_2.Element;
14
+
15
+ export { }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-BHm2KTjD-D8FylaKc.cjs"),o=require("./index-CEc_9zWy.cjs"),l=require("./svgDownload.js");function u(a){const{nodeID:t,filename:e="image",buttonContent:s,buttonType:r="tertiary",buttonSmall:i,className:d=""}=a;return n.jsxRuntimeExports.jsx(o.ButtonExports.Button,{variant:r,className:`undp-viz-download-button ${i?"p-2":"py-4 px-6"} ${d}`,onClick:()=>{typeof t=="string"?document.getElementById(t)?l.svgDownload(document.getElementById(t),e):console.error("Cannot find the html element"):l.svgDownload(t,e)},"aria-label":"Click to download the graph as svg",children:s||n.jsxRuntimeExports.jsx(o.ImageDown,{})})}exports.SVGDownloadButton=u;
2
+ //# sourceMappingURL=SVGDownloadButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SVGDownloadButton.js","sources":["../src/Components/Actions/SVGDownloadButton.tsx"],"sourcesContent":["import { Button } from '@undp/design-system-react/Button';\r\nimport { JSX } from 'react';\r\n\r\nimport { svgDownload } from '@/Utils/svgDownload';\r\nimport { ImageDown } from '@/Components/Icons';\r\n\r\ninterface Props {\r\n buttonContent?: string | JSX.Element;\r\n buttonType?:\r\n | 'primary'\r\n | 'primary-without-icon'\r\n | 'secondary'\r\n | 'secondary-without-icon'\r\n | 'tertiary';\r\n nodeID: string | HTMLElement;\r\n filename?: string;\r\n buttonSmall?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function SVGDownloadButton(props: Props) {\r\n const {\r\n nodeID,\r\n filename = 'image',\r\n buttonContent,\r\n buttonType = 'tertiary',\r\n buttonSmall,\r\n className = '',\r\n } = props;\r\n return (\r\n <Button\r\n variant={buttonType}\r\n className={`undp-viz-download-button ${buttonSmall ? 'p-2' : 'py-4 px-6'} ${className}`}\r\n onClick={() => {\r\n if (typeof nodeID === 'string') {\r\n if (document.getElementById(nodeID)) {\r\n svgDownload(document.getElementById(nodeID) as HTMLElement, filename);\r\n } else {\r\n console.error('Cannot find the html element');\r\n }\r\n } else {\r\n svgDownload(nodeID as HTMLElement, filename);\r\n }\r\n }}\r\n aria-label='Click to download the graph as svg'\r\n >\r\n {buttonContent || <ImageDown />}\r\n </Button>\r\n );\r\n}\r\n"],"names":["SVGDownloadButton","props","nodeID","filename","buttonContent","buttonType","buttonSmall","className","jsx","Button","svgDownload","ImageDown"],"mappings":"iMAoBO,SAASA,EAAkBC,EAAc,CAC9C,KAAM,CACJ,OAAAC,EACA,SAAAC,EAAW,QACX,cAAAC,EACA,WAAAC,EAAa,WACb,YAAAC,EACA,UAAAC,EAAY,EAAA,EACVN,EACJ,OACEO,EAAAA,kBAAAA,IAACC,EAAAA,cAAAA,OAAA,CACC,QAASJ,EACT,UAAW,4BAA4BC,EAAc,MAAQ,WAAW,IAAIC,CAAS,GACrF,QAAS,IAAM,CACT,OAAOL,GAAW,SAChB,SAAS,eAAeA,CAAM,EAChCQ,EAAAA,YAAY,SAAS,eAAeR,CAAM,EAAkBC,CAAQ,EAEpE,QAAQ,MAAM,8BAA8B,EAG9CO,EAAAA,YAAYR,EAAuBC,CAAQ,CAE/C,EACA,aAAW,qCAEV,SAAAC,2BAAkBO,EAAAA,UAAA,CAAA,CAAU,CAAA,CAAA,CAGnC"}
@@ -0,0 +1,178 @@
1
+ import { JSX } from 'react/jsx-runtime';
2
+
3
+ declare interface AnimateDataType {
4
+ duration: number;
5
+ once: boolean;
6
+ amount: 'some' | 'all' | number;
7
+ }
8
+
9
+ declare interface AxesClassNameObject {
10
+ gridLines?: string;
11
+ labels?: string;
12
+ title?: string;
13
+ axis?: string;
14
+ }
15
+
16
+ declare interface AxesStyleObject {
17
+ gridLines?: React.CSSProperties;
18
+ labels?: React.CSSProperties;
19
+ title?: React.CSSProperties;
20
+ axis?: React.CSSProperties;
21
+ }
22
+
23
+ declare interface ClassNameObject {
24
+ title?: string;
25
+ footnote?: string;
26
+ source?: string;
27
+ description?: string;
28
+ tooltip?: string;
29
+ xAxis?: AxesClassNameObject;
30
+ yAxis?: AxesClassNameObject;
31
+ legend?: string;
32
+ graphContainer?: string;
33
+ graphObjectValues?: string;
34
+ dataConnectors?: string;
35
+ mouseOverLine?: string;
36
+ regLine?: string;
37
+ dataCards?: string;
38
+ }
39
+
40
+ declare interface CustomLayerDataType {
41
+ position: 'before' | 'after';
42
+ layer: React.ReactNode;
43
+ }
44
+
45
+ declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | 'jp' | 'ka' | 'km' | 'ko' | 'my' | 'ne' | 'zh' | 'custom';
46
+
47
+ declare interface Props {
48
+ /** Array of data objects */
49
+ data: SankeyDataType[];
50
+ /** Title of the graph */
51
+ graphTitle?: string | React.ReactNode;
52
+ /** Description of the graph */
53
+ graphDescription?: string | React.ReactNode;
54
+ /** Footnote for the graph */
55
+ footNote?: string | React.ReactNode;
56
+ /** Source data for the graph */
57
+ sources?: SourcesDataType[];
58
+ /** Accessibility label */
59
+ ariaLabel?: string;
60
+ /** Color or array of colors for source */
61
+ sourceColors?: string[] | string;
62
+ /** Color or array of colors for targets */
63
+ targetColors?: string[] | string;
64
+ /** Domain of colors for the source */
65
+ sourceColorDomain?: (string | number)[];
66
+ /** Domain of colors for the target */
67
+ targetColorDomain?: (string | number)[];
68
+ /** Background color of the graph */
69
+ backgroundColor?: string | boolean;
70
+ /** Custom styles for the graph. Each object should be a valid React CSS style object. */
71
+ styles?: StyleObject;
72
+ /** Custom class names */
73
+ classNames?: ClassNameObject;
74
+ /** Width of the graph */
75
+ width?: number;
76
+ /** Height of the graph */
77
+ height?: number;
78
+ /** Minimum height of the graph */
79
+ minHeight?: number;
80
+ /** Relative height scaling factor. This overwrites the height props */
81
+ relativeHeight?: number;
82
+ /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */
83
+ padding?: string;
84
+ /** Left margin of the graph */
85
+ leftMargin?: number;
86
+ /** Right margin of the graph */
87
+ rightMargin?: number;
88
+ /** Top margin of the graph */
89
+ topMargin?: number;
90
+ /** Bottom margin of the graph */
91
+ bottomMargin?: number;
92
+ /** Toggles the background to fill the container. This only works if the width of the graph is defined. */
93
+ fillContainer?: boolean;
94
+ /** Padding between nodes */
95
+ nodePadding?: number;
96
+ /** Thickness of each node */
97
+ nodeWidth?: number;
98
+ /** Prefix for values */
99
+ prefix?: string;
100
+ /** Suffix for values */
101
+ suffix?: string;
102
+ /** Truncate labels by specified length */
103
+ truncateBy?: number;
104
+ /** Title of the source */
105
+ sourceTitle?: string;
106
+ /** Title of the targets */
107
+ targetTitle?: string;
108
+ /** Toggle visibility of labels */
109
+ showLabels?: boolean;
110
+ /** Toggle visibility of values */
111
+ showValues?: boolean;
112
+ /** Source to highlight. Use the label value from data to highlight the data point */
113
+ highlightedSourceDataPoints?: (string | number)[];
114
+ /** Targets to highlight. Use the label value from data to highlight the data point */
115
+ highlightedTargetDataPoints?: (string | number)[];
116
+ /** Opacity of the links */
117
+ defaultLinkOpacity?: number;
118
+ /** Sorting order of the nodes */
119
+ sortNodes?: 'asc' | 'desc' | 'mostReadable' | 'none';
120
+ /** Toggles if the graph animates in when loaded. */
121
+ animate?: boolean | AnimateDataType;
122
+ /** Specifies the number of decimal places to display in the value. */
123
+ precision?: number;
124
+ /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */
125
+ customLayers?: CustomLayerDataType[];
126
+ /** Enable graph download option as png */
127
+ graphDownload?: boolean;
128
+ /** Enable data download option as a csv */
129
+ dataDownload?: boolean;
130
+ /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */
131
+ resetSelectionOnDoubleClick?: boolean;
132
+ /** Tooltip content when user mouseover on the links. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */
133
+ tooltip?: string | ((_d: any) => React.ReactNode);
134
+ /** 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 */
135
+ detailsOnClick?: string | ((_d: any) => React.ReactNode);
136
+ /** Callback for mouse over event */
137
+ onSeriesMouseOver?: (_d: any) => void;
138
+ /** Callback for mouse click event */
139
+ onSeriesMouseClick?: (_d: any) => void;
140
+ /** Language setting */
141
+ language?: Languages;
142
+ /** Color theme */
143
+ theme?: 'light' | 'dark';
144
+ /** Unique ID for the graph */
145
+ graphID?: string;
146
+ }
147
+
148
+ export declare function SankeyChart(props: Props): JSX.Element;
149
+
150
+ declare interface SankeyDataType {
151
+ source: string | number;
152
+ target: string | number;
153
+ value: number;
154
+ data?: object;
155
+ }
156
+
157
+ declare interface SourcesDataType {
158
+ source: string;
159
+ link?: string;
160
+ }
161
+
162
+ declare interface StyleObject {
163
+ title?: React.CSSProperties;
164
+ footnote?: React.CSSProperties;
165
+ source?: React.CSSProperties;
166
+ description?: React.CSSProperties;
167
+ graphContainer?: React.CSSProperties;
168
+ tooltip?: React.CSSProperties;
169
+ xAxis?: AxesStyleObject;
170
+ yAxis?: AxesStyleObject;
171
+ graphObjectValues?: React.CSSProperties;
172
+ dataConnectors?: React.CSSProperties;
173
+ mouseOverLine?: React.CSSProperties;
174
+ regLine?: React.CSSProperties;
175
+ dataCards?: React.CSSProperties;
176
+ }
177
+
178
+ export { }