@undp/data-viz 2.0.8 → 2.1.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 (215) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.d.ts +2 -0
  3. package/dist/AreaChart.js +1 -1
  4. package/dist/BarGraph.cjs +1 -1
  5. package/dist/BarGraph.cjs.map +1 -1
  6. package/dist/BarGraph.d.ts +2 -0
  7. package/dist/BarGraph.js +1188 -1213
  8. package/dist/BarGraph.js.map +1 -1
  9. package/dist/BasicStatCard.d.ts +2 -0
  10. package/dist/BeeSwarmChart.cjs +1 -1
  11. package/dist/BeeSwarmChart.cjs.map +1 -1
  12. package/dist/BeeSwarmChart.d.ts +2 -0
  13. package/dist/BeeSwarmChart.js +258 -267
  14. package/dist/BeeSwarmChart.js.map +1 -1
  15. package/dist/BiVariateChoroplethMap.cjs +1 -1
  16. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  17. package/dist/BiVariateChoroplethMap.d.ts +2 -0
  18. package/dist/BiVariateChoroplethMap.js +126 -131
  19. package/dist/BiVariateChoroplethMap.js.map +1 -1
  20. package/dist/BulletChart.cjs +1 -1
  21. package/dist/BulletChart.cjs.map +1 -1
  22. package/dist/BulletChart.d.ts +2 -0
  23. package/dist/BulletChart.js +404 -413
  24. package/dist/BulletChart.js.map +1 -1
  25. package/dist/ButterflyChart.cjs +1 -1
  26. package/dist/ButterflyChart.cjs.map +1 -1
  27. package/dist/ButterflyChart.d.ts +2 -0
  28. package/dist/ButterflyChart.js +179 -184
  29. package/dist/ButterflyChart.js.map +1 -1
  30. package/dist/ChoroplethMap.cjs +1 -1
  31. package/dist/ChoroplethMap.cjs.map +1 -1
  32. package/dist/ChoroplethMap.d.ts +2 -0
  33. package/dist/ChoroplethMap.js +268 -273
  34. package/dist/ChoroplethMap.js.map +1 -1
  35. package/dist/CirclePackingGraph.cjs +1 -1
  36. package/dist/CirclePackingGraph.d.ts +2 -0
  37. package/dist/CirclePackingGraph.js +1 -1
  38. package/dist/DataCards.cjs +1 -1
  39. package/dist/DataCards.d.ts +2 -0
  40. package/dist/DataCards.js +2 -2
  41. package/dist/DataTable.d.ts +2 -0
  42. package/dist/DetailsModal-0Ry5nXiC.js +32 -0
  43. package/dist/DetailsModal-0Ry5nXiC.js.map +1 -0
  44. package/dist/DetailsModal-BN0HDFlV.cjs +2 -0
  45. package/dist/DetailsModal-BN0HDFlV.cjs.map +1 -0
  46. package/dist/DifferenceLineChart.cjs +1 -1
  47. package/dist/DifferenceLineChart.d.ts +2 -0
  48. package/dist/DifferenceLineChart.js +1 -1
  49. package/dist/DonutChart.cjs +1 -1
  50. package/dist/DonutChart.cjs.map +1 -1
  51. package/dist/DonutChart.d.ts +2 -0
  52. package/dist/DonutChart.js +185 -190
  53. package/dist/DonutChart.js.map +1 -1
  54. package/dist/DotDensityMap.cjs +1 -1
  55. package/dist/DotDensityMap.cjs.map +1 -1
  56. package/dist/DotDensityMap.d.ts +2 -0
  57. package/dist/DotDensityMap.js +198 -203
  58. package/dist/DotDensityMap.js.map +1 -1
  59. package/dist/DualAxisLineChart.cjs +1 -1
  60. package/dist/DualAxisLineChart.d.ts +2 -0
  61. package/dist/DualAxisLineChart.js +1 -1
  62. package/dist/DumbbellChart.cjs +1 -1
  63. package/dist/DumbbellChart.cjs.map +1 -1
  64. package/dist/DumbbellChart.d.ts +2 -0
  65. package/dist/DumbbellChart.js +364 -373
  66. package/dist/DumbbellChart.js.map +1 -1
  67. package/dist/GeoHubCompareMaps.d.ts +2 -0
  68. package/dist/GeoHubMap.d.ts +2 -0
  69. package/dist/GeoHubMapWithLayerSelection.d.ts +2 -0
  70. package/dist/{GraphEl-BcKU0bG1.cjs → GraphEl-B16EYkko.cjs} +2 -2
  71. package/dist/{GraphEl-BcKU0bG1.cjs.map → GraphEl-B16EYkko.cjs.map} +1 -1
  72. package/dist/{GraphEl-CGq1EWRn.js → GraphEl-ebgfxefq.js} +3 -3
  73. package/dist/{GraphEl-CGq1EWRn.js.map → GraphEl-ebgfxefq.js.map} +1 -1
  74. package/dist/GriddedGraphs.cjs +1 -1
  75. package/dist/GriddedGraphs.cjs.map +1 -1
  76. package/dist/GriddedGraphs.d.ts +3 -0
  77. package/dist/GriddedGraphs.js +158 -146
  78. package/dist/GriddedGraphs.js.map +1 -1
  79. package/dist/GriddedGraphsFromConfig.d.ts +3 -0
  80. package/dist/HeatMap.cjs +1 -1
  81. package/dist/HeatMap.cjs.map +1 -1
  82. package/dist/HeatMap.d.ts +2 -0
  83. package/dist/HeatMap.js +111 -116
  84. package/dist/HeatMap.js.map +1 -1
  85. package/dist/Histogram.cjs +1 -1
  86. package/dist/Histogram.d.ts +2 -0
  87. package/dist/Histogram.js +1 -1
  88. package/dist/HybridMap.cjs +1 -1
  89. package/dist/HybridMap.cjs.map +1 -1
  90. package/dist/HybridMap.d.ts +2 -0
  91. package/dist/HybridMap.js +202 -207
  92. package/dist/HybridMap.js.map +1 -1
  93. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  94. package/dist/LineChartWithConfidenceInterval.d.ts +2 -0
  95. package/dist/LineChartWithConfidenceInterval.js +1 -1
  96. package/dist/{Modal-DGcuAHyK.js → Modal-bMQA6bL_.js} +5 -5
  97. package/dist/{Modal-DGcuAHyK.js.map → Modal-bMQA6bL_.js.map} +1 -1
  98. package/dist/MultiGraphDashboard.cjs +1 -1
  99. package/dist/MultiGraphDashboard.cjs.map +1 -1
  100. package/dist/MultiGraphDashboard.d.ts +3 -0
  101. package/dist/MultiGraphDashboard.js +90 -85
  102. package/dist/MultiGraphDashboard.js.map +1 -1
  103. package/dist/MultiGraphDashboardFromConfig.d.ts +3 -0
  104. package/dist/MultiGraphDashboardWideToLongFormat.d.ts +2 -0
  105. package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
  106. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +2 -0
  107. package/dist/MultiLineAltChart.cjs +1 -1
  108. package/dist/MultiLineAltChart.d.ts +2 -0
  109. package/dist/MultiLineAltChart.js +1 -1
  110. package/dist/MultiLineChart.cjs +1 -1
  111. package/dist/MultiLineChart.d.ts +2 -0
  112. package/dist/MultiLineChart.js +1 -1
  113. package/dist/ParetoChart.cjs +1 -1
  114. package/dist/ParetoChart.cjs.map +1 -1
  115. package/dist/ParetoChart.d.ts +2 -0
  116. package/dist/ParetoChart.js +187 -192
  117. package/dist/ParetoChart.js.map +1 -1
  118. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  119. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
  120. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +3 -0
  121. package/dist/PerformanceIntensiveMultiGraphDashboard.js +76 -72
  122. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
  123. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +3 -0
  124. package/dist/PerformanceIntensiveScrollStory.d.ts +2 -0
  125. package/dist/RadarChart.cjs +1 -1
  126. package/dist/RadarChart.cjs.map +1 -1
  127. package/dist/RadarChart.d.ts +2 -0
  128. package/dist/RadarChart.js +158 -163
  129. package/dist/RadarChart.js.map +1 -1
  130. package/dist/SankeyChart.cjs +1 -1
  131. package/dist/SankeyChart.cjs.map +1 -1
  132. package/dist/SankeyChart.d.ts +2 -0
  133. package/dist/SankeyChart.js +172 -177
  134. package/dist/SankeyChart.js.map +1 -1
  135. package/dist/ScatterPlot.cjs +1 -1
  136. package/dist/ScatterPlot.cjs.map +1 -1
  137. package/dist/ScatterPlot.d.ts +2 -0
  138. package/dist/ScatterPlot.js +222 -227
  139. package/dist/ScatterPlot.js.map +1 -1
  140. package/dist/ScrollStory.d.ts +2 -0
  141. package/dist/SimpleLineChart.cjs +1 -1
  142. package/dist/SimpleLineChart.d.ts +2 -0
  143. package/dist/SimpleLineChart.js +1 -1
  144. package/dist/SingleGraphDashboard.cjs +1 -1
  145. package/dist/SingleGraphDashboard.cjs.map +1 -1
  146. package/dist/SingleGraphDashboard.d.ts +3 -0
  147. package/dist/SingleGraphDashboard.js +131 -128
  148. package/dist/SingleGraphDashboard.js.map +1 -1
  149. package/dist/SingleGraphDashboardFromConfig.d.ts +3 -0
  150. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +2 -0
  151. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +2 -0
  152. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  153. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  154. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +3 -0
  155. package/dist/SingleGraphDashboardThreeDGraphs.js +145 -141
  156. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  157. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +3 -0
  158. package/dist/SlopeChart.cjs +1 -1
  159. package/dist/SlopeChart.cjs.map +1 -1
  160. package/dist/SlopeChart.d.ts +2 -0
  161. package/dist/SlopeChart.js +182 -187
  162. package/dist/SlopeChart.js.map +1 -1
  163. package/dist/SparkLine.cjs +1 -1
  164. package/dist/SparkLine.d.ts +2 -0
  165. package/dist/SparkLine.js +1 -1
  166. package/dist/StatCardFromData.d.ts +2 -0
  167. package/dist/StripChart.cjs +1 -1
  168. package/dist/StripChart.cjs.map +1 -1
  169. package/dist/StripChart.d.ts +2 -0
  170. package/dist/StripChart.js +249 -258
  171. package/dist/StripChart.js.map +1 -1
  172. package/dist/ThreeDGlobe.cjs +1 -1
  173. package/dist/ThreeDGlobe.cjs.map +1 -1
  174. package/dist/ThreeDGlobe.d.ts +2 -0
  175. package/dist/ThreeDGlobe.js +142 -147
  176. package/dist/ThreeDGlobe.js.map +1 -1
  177. package/dist/Tooltip-Dj5eVppQ.js +45 -0
  178. package/dist/Tooltip-Dj5eVppQ.js.map +1 -0
  179. package/dist/Tooltip-uUdw6wJL.cjs +2 -0
  180. package/dist/Tooltip-uUdw6wJL.cjs.map +1 -0
  181. package/dist/TreeMapGraph.cjs +1 -1
  182. package/dist/TreeMapGraph.cjs.map +1 -1
  183. package/dist/TreeMapGraph.d.ts +2 -0
  184. package/dist/TreeMapGraph.js +159 -164
  185. package/dist/TreeMapGraph.js.map +1 -1
  186. package/dist/Types.d.ts +3 -0
  187. package/dist/UnitChart.d.ts +2 -0
  188. package/dist/{checkIfMultiple-Y9iKaV_u.js → checkIfMultiple-CIRtG0KE.js} +2 -2
  189. package/dist/{checkIfMultiple-Y9iKaV_u.js.map → checkIfMultiple-CIRtG0KE.js.map} +1 -1
  190. package/dist/getUniqValue-DsqSii6M.js +11 -0
  191. package/dist/getUniqValue-DsqSii6M.js.map +1 -0
  192. package/dist/getUniqValue-NX8DgwND.cjs +2 -0
  193. package/dist/getUniqValue-NX8DgwND.cjs.map +1 -0
  194. package/dist/index-BBV4tAeA.js +330 -0
  195. package/dist/index-BBV4tAeA.js.map +1 -0
  196. package/dist/index-CF5hnGvG.cjs +2 -0
  197. package/dist/index-CF5hnGvG.cjs.map +1 -0
  198. package/dist/index.cjs +1 -1
  199. package/dist/index.d.ts +3 -0
  200. package/dist/index.js +2 -2
  201. package/dist/utils.cjs +1 -1
  202. package/dist/utils.js +1 -1
  203. package/package.json +1 -1
  204. package/dist/Tooltip-4dJo4_AF.cjs +0 -2
  205. package/dist/Tooltip-4dJo4_AF.cjs.map +0 -1
  206. package/dist/Tooltip-CwWUegPB.js +0 -43
  207. package/dist/Tooltip-CwWUegPB.js.map +0 -1
  208. package/dist/getUniqValue-BKHCm3zE.js +0 -11
  209. package/dist/getUniqValue-BKHCm3zE.js.map +0 -1
  210. package/dist/getUniqValue-RViz8tTw.cjs +0 -2
  211. package/dist/getUniqValue-RViz8tTw.cjs.map +0 -1
  212. package/dist/index-B2LQV7Tk.js +0 -335
  213. package/dist/index-B2LQV7Tk.js.map +0 -1
  214. package/dist/index-xRHRLDIp.cjs +0 -2
  215. package/dist/index-xRHRLDIp.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ParetoChart.js","sources":["../src/Components/Graphs/ParetoChart/Graph.tsx","../src/Components/Graphs/ParetoChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleBand, scaleLinear } from 'd3-scale';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n ParetoChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\n\r\ninterface Props {\r\n data: ParetoChartDataType[];\r\n barColor: string;\r\n lineColor: string;\r\n axisTitles: [string, string];\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n barPadding: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n noOfTicks: number;\r\n lineSuffix: string;\r\n barSuffix: string;\r\n linePrefix: string;\r\n showValues: boolean;\r\n barPrefix: string;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n naLabel: string;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n}\r\ninterface DataFormattedType {\r\n id: string;\r\n label: number | string;\r\n line?: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n lineColor,\r\n axisTitles,\r\n sameAxes,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n showValues,\r\n onSeriesMouseOver,\r\n barPadding,\r\n truncateBy,\r\n showLabels,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n lineSuffix,\r\n barSuffix,\r\n linePrefix,\r\n barPrefix,\r\n curveType,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n showAxisLabels,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin + 50,\r\n right: rightMargin + 65,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = data.map((d, i) => ({ ...d, id: `${i}` }));\r\n const x = scaleBand()\r\n .domain(dataWithId.map(d => `${d.id}`))\r\n .range([0, graphWidth])\r\n .paddingInner(barPadding);\r\n const minParam1 =\r\n Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape = line<DataFormattedType>()\r\n .defined(d => !checkIfNullOrUndefined(d.line))\r\n .x(d => (x(`${d.id}`) as number) + x.bandwidth() / 2)\r\n .y(d => y2(d.line as number))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfTicks);\r\n const y2Ticks = y2.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: barColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: barColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, barPrefix, barSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: barColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: barColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[0].length > 100\r\n ? `${axisTitles[0].substring(0, 100)}...`\r\n : axisTitles[0]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, linePrefix, lineSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[1].length > 100\r\n ? `${axisTitles[1].substring(0, 100)}...`\r\n : axisTitles[1]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <Axis\r\n y1={sameAxes ? y1(0) : graphHeight}\r\n y2={sameAxes ? y1(0) : graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, i) => {\r\n return (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 1,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: d.bar ? (d.bar > 0 ? y1(d.bar) : y1(0)) : 0,\r\n height: d.bar ? Math.abs(y1(d.bar) - y1(0)) : 0,\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n x={x(`${i}`)}\r\n width={x.bandwidth()}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.bar) ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n attrY: y1(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n opacity: 0,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: y1(d.bar || 0),\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy={d.bar ? (d.bar >= 0 ? '-5px' : '1em') : '-5px'}\r\n >\r\n {numberFormattingFunction(d.bar, naLabel, precision, barPrefix, barSuffix)}\r\n </motion.text>\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={graphHeight + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n );\r\n })}\r\n <motion.path\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n d: lineShape(dataWithId.map(d => ({ ...d, line: 0 }))) as string,\r\n opacity: 0,\r\n stroke: lineColor,\r\n },\r\n whileInView: {\r\n d: lineShape(dataWithId) as string,\r\n opacity: 1,\r\n stroke: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n fill: 'none',\r\n strokeWidth: 2,\r\n }}\r\n />\r\n {dataWithId.map((d, i) => (\r\n <g key={i}>\r\n {!checkIfNullOrUndefined(d.line) ? (\r\n <g\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.circle\r\n exit={{\r\n cy: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n cy: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n cy: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n cx={(x(d.id) as number) + x.bandwidth() / 2}\r\n r={\r\n graphWidth / dataWithId.length < 5\r\n ? 0\r\n : graphWidth / dataWithId.length < 20\r\n ? 2\r\n : 4\r\n }\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n y: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n variants={{\r\n initial: {\r\n y: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n y: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='-5px'\r\n >\r\n {numberFormattingFunction(\r\n d.line,\r\n naLabel,\r\n precision,\r\n linePrefix,\r\n lineSuffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n Languages,\r\n ParetoChartDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ParetoChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color of the bars */\r\n barColor?: string;\r\n /** Color of the line */\r\n lineColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n\r\n // Values and Ticks\r\n /** Suffix for values of the lines */\r\n lineSuffix?: string;\r\n /** Suffix for values of the bars */\r\n barSuffix?: string;\r\n /** Prefix for values of the lines */\r\n linePrefix?: string;\r\n /** Prefix for values of the bars */\r\n barPrefix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Enables same axis for bars and line */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Title for the line axis */\r\n lineAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function ParetoChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n lineColor = Colors.light.categoricalColors.colors[1],\r\n barColor = Colors.light.categoricalColors.colors[0],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n lineAxisTitle = 'Line chart',\r\n barAxisTitle = 'Bar graph',\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n barPadding = 0.25,\r\n truncateBy = 999,\r\n showLabels = true,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n showValues = true,\r\n noOfTicks = 5,\r\n lineSuffix = '',\r\n barSuffix = '',\r\n linePrefix = '',\r\n barPrefix = '',\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showColorScale = true,\r\n showAxisLabels = true,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {!showColorScale ? null : (\r\n <ColorLegend\r\n colorDomain={[barAxisTitle, lineAxisTitle]}\r\n colors={[\r\n barColor || Colors[theme].categoricalColors.colors[0],\r\n lineColor || Colors[theme].categoricalColors.colors[1],\r\n ]}\r\n colorLegendTitle={colorLegendTitle}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColor={lineColor}\r\n barColor={barColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n truncateBy={truncateBy}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n axisTitles={[barAxisTitle, lineAxisTitle]}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n barPadding={barPadding}\r\n showLabels={showLabels}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n noOfTicks={noOfTicks}\r\n lineSuffix={lineSuffix}\r\n barSuffix={barSuffix}\r\n linePrefix={linePrefix}\r\n barPrefix={barPrefix}\r\n curveType={curveType}\r\n showValues={showValues}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showAxisLabels={showAxisLabels}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","barColor","lineColor","axisTitles","sameAxes","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","showValues","onSeriesMouseOver","barPadding","truncateBy","showLabels","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","noOfTicks","lineSuffix","barSuffix","linePrefix","barPrefix","curveType","styles","classNames","animate","precision","customLayers","naLabel","showAxisLabels","svgRef","useRef","t0","amount","once","isInView","useInView","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","t2","t3","top","bottom","left","right","margin","graphWidth","graphHeight","T0","T1","t10","t11","t12","t13","t14","t15","t16","t4","t5","t6","t7","t8","t9","graphObjectValues","xAxis","axis","labels","yAxis","gridLines","title","dataWithId","map","_temp","x","scaleBand","domain","_temp2","range","paddingInner","minParam1","Math","min","_temp3","filter","_temp4","Infinity","_temp5","_temp6","_temp7","_temp8","minParam2","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","maxParam1","max","_temp13","_temp14","_temp15","_temp16","maxParam2","_temp17","_temp18","_temp19","_temp20","minParam","maxParam","y1","scaleLinear","nice","y2","lineShape","line","defined","_temp21","d_22","d","id","bandwidth","y","d_23","y1Ticks","ticks","y2Ticks","motion","svg","t17","t18","t19","t20","stroke","t21","jsx","Axis","t22","AxisTitle","fill","length","substring","d_24","i_0","strokeWidth","cn","textAnchor","numberFormattingFunction","i","t23","t24","t25","t26","t27","t28","t29","t30","d_25","i_1","t31","t32","t33","t34","_temp22","_temp23","AnimatePresence","d_28","i_2","jsxs","event","clientY","clientX","isEqual","event_0","initial","attrY","opacity","whileInView","bar","abs","transition","duration","checkIfNullOrUndefined","XAxesLabels","label","t35","t36","Symbol","for","_temp24","d_30","i_3","event_1","event_2","cy","_temp25","_temp26","Tooltip","Modal","__html","string2HTML","Fragment","d_32","layer","d_31","position","d_29","d_27","d_26","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","d_0","ParetoChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","lineAxisTitle","barAxisTitle","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","graphContainer","t37","description","GraphHeader","t38","EmptyState","ColorLegend","colorLegend","GraphArea","t39","footnote","source","GraphFooter","t40","GraphContainer"],"mappings":"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"}
1
+ {"version":3,"file":"ParetoChart.js","sources":["../src/Components/Graphs/ParetoChart/Graph.tsx","../src/Components/Graphs/ParetoChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleBand, scaleLinear } from 'd3-scale';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n ParetoChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: ParetoChartDataType[];\r\n barColor: string;\r\n lineColor: string;\r\n axisTitles: [string, string];\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n barPadding: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n noOfTicks: number;\r\n lineSuffix: string;\r\n barSuffix: string;\r\n linePrefix: string;\r\n showValues: boolean;\r\n barPrefix: string;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n naLabel: string;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n}\r\ninterface DataFormattedType {\r\n id: string;\r\n label: number | string;\r\n line?: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n lineColor,\r\n axisTitles,\r\n sameAxes,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n showValues,\r\n onSeriesMouseOver,\r\n barPadding,\r\n truncateBy,\r\n showLabels,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n lineSuffix,\r\n barSuffix,\r\n linePrefix,\r\n barPrefix,\r\n curveType,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n showAxisLabels,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin + 50,\r\n right: rightMargin + 65,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = data.map((d, i) => ({ ...d, id: `${i}` }));\r\n const x = scaleBand()\r\n .domain(dataWithId.map(d => `${d.id}`))\r\n .range([0, graphWidth])\r\n .paddingInner(barPadding);\r\n const minParam1 =\r\n Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape = line<DataFormattedType>()\r\n .defined(d => !checkIfNullOrUndefined(d.line))\r\n .x(d => (x(`${d.id}`) as number) + x.bandwidth() / 2)\r\n .y(d => y2(d.line as number))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfTicks);\r\n const y2Ticks = y2.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: barColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: barColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, barPrefix, barSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: barColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: barColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[0].length > 100\r\n ? `${axisTitles[0].substring(0, 100)}...`\r\n : axisTitles[0]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, linePrefix, lineSuffix)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[1].length > 100\r\n ? `${axisTitles[1].substring(0, 100)}...`\r\n : axisTitles[1]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <Axis\r\n y1={sameAxes ? y1(0) : graphHeight}\r\n y2={sameAxes ? y1(0) : graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, i) => {\r\n return (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 1,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: d.bar ? (d.bar > 0 ? y1(d.bar) : y1(0)) : 0,\r\n height: d.bar ? Math.abs(y1(d.bar) - y1(0)) : 0,\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n x={x(`${i}`)}\r\n width={x.bandwidth()}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.bar) ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n attrY: y1(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n opacity: 0,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: y1(d.bar || 0),\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy={d.bar ? (d.bar >= 0 ? '-5px' : '1em') : '-5px'}\r\n >\r\n {numberFormattingFunction(d.bar, naLabel, precision, barPrefix, barSuffix)}\r\n </motion.text>\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={graphHeight + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n );\r\n })}\r\n <motion.path\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n d: lineShape(dataWithId.map(d => ({ ...d, line: 0 }))) as string,\r\n opacity: 0,\r\n stroke: lineColor,\r\n },\r\n whileInView: {\r\n d: lineShape(dataWithId) as string,\r\n opacity: 1,\r\n stroke: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n fill: 'none',\r\n strokeWidth: 2,\r\n }}\r\n />\r\n {dataWithId.map((d, i) => (\r\n <g key={i}>\r\n {!checkIfNullOrUndefined(d.line) ? (\r\n <g\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.circle\r\n exit={{\r\n cy: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n cy: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n cy: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n cx={(x(d.id) as number) + x.bandwidth() / 2}\r\n r={\r\n graphWidth / dataWithId.length < 5\r\n ? 0\r\n : graphWidth / dataWithId.length < 20\r\n ? 2\r\n : 4\r\n }\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n y: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n variants={{\r\n initial: {\r\n y: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n y: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='-5px'\r\n >\r\n {numberFormattingFunction(\r\n d.line,\r\n naLabel,\r\n precision,\r\n linePrefix,\r\n lineSuffix,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n Languages,\r\n ParetoChartDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ParetoChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color of the bars */\r\n barColor?: string;\r\n /** Color of the line */\r\n lineColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n\r\n // Values and Ticks\r\n /** Suffix for values of the lines */\r\n lineSuffix?: string;\r\n /** Suffix for values of the bars */\r\n barSuffix?: string;\r\n /** Prefix for values of the lines */\r\n linePrefix?: string;\r\n /** Prefix for values of the bars */\r\n barPrefix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Enables same axis for bars and line */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Title for the line axis */\r\n lineAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function ParetoChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n lineColor = Colors.light.categoricalColors.colors[1],\r\n barColor = Colors.light.categoricalColors.colors[0],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n lineAxisTitle = 'Line chart',\r\n barAxisTitle = 'Bar graph',\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n barPadding = 0.25,\r\n truncateBy = 999,\r\n showLabels = true,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n showValues = true,\r\n noOfTicks = 5,\r\n lineSuffix = '',\r\n barSuffix = '',\r\n linePrefix = '',\r\n barPrefix = '',\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showColorScale = true,\r\n showAxisLabels = true,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {!showColorScale ? null : (\r\n <ColorLegend\r\n colorDomain={[barAxisTitle, lineAxisTitle]}\r\n colors={[\r\n barColor || Colors[theme].categoricalColors.colors[0],\r\n lineColor || Colors[theme].categoricalColors.colors[1],\r\n ]}\r\n colorLegendTitle={colorLegendTitle}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColor={lineColor}\r\n barColor={barColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n truncateBy={truncateBy}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n axisTitles={[barAxisTitle, lineAxisTitle]}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n barPadding={barPadding}\r\n showLabels={showLabels}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n noOfTicks={noOfTicks}\r\n lineSuffix={lineSuffix}\r\n barSuffix={barSuffix}\r\n linePrefix={linePrefix}\r\n barPrefix={barPrefix}\r\n curveType={curveType}\r\n showValues={showValues}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showAxisLabels={showAxisLabels}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","barColor","lineColor","axisTitles","sameAxes","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","showValues","onSeriesMouseOver","barPadding","truncateBy","showLabels","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","noOfTicks","lineSuffix","barSuffix","linePrefix","barPrefix","curveType","styles","classNames","animate","precision","customLayers","naLabel","showAxisLabels","svgRef","useRef","t0","amount","once","isInView","useInView","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","t2","t3","top","bottom","left","right","margin","graphWidth","graphHeight","T0","T1","t10","t11","t12","t13","t14","t15","t16","t4","t5","t6","t7","t8","t9","graphObjectValues","xAxis","axis","labels","yAxis","gridLines","title","dataWithId","map","_temp","x","scaleBand","domain","_temp2","range","paddingInner","minParam1","Math","min","_temp3","filter","_temp4","Infinity","_temp5","_temp6","_temp7","_temp8","minParam2","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","maxParam1","max","_temp13","_temp14","_temp15","_temp16","maxParam2","_temp17","_temp18","_temp19","_temp20","minParam","maxParam","y1","scaleLinear","nice","y2","lineShape","line","defined","_temp21","d_22","d","id","bandwidth","y","d_23","y1Ticks","ticks","y2Ticks","motion","svg","t17","t18","t19","t20","stroke","t21","jsx","Axis","t22","AxisTitle","fill","length","substring","d_24","i_0","strokeWidth","cn","textAnchor","numberFormattingFunction","i","t23","t24","t25","t26","t27","t28","t29","t30","d_25","i_1","t31","t32","t33","t34","_temp22","_temp23","AnimatePresence","d_28","i_2","jsxs","event","clientY","clientX","isEqual","event_0","initial","attrY","opacity","whileInView","bar","abs","transition","duration","checkIfNullOrUndefined","XAxesLabels","label","t35","t36","Symbol","for","_temp24","d_30","i_3","event_1","event_2","cy","_temp25","_temp26","Tooltip","modal","DetailsModal","Fragment","d_32","layer","d_31","position","d_29","d_27","d_26","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","d_0","ParetoChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","lineAxisTitle","barAxisTitle","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","graphContainer","t37","description","GraphHeader","t38","EmptyState","ColorLegend","colorLegend","GraphArea","t39","footnote","source","GraphFooter","t40","GraphContainer"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-CTPQjnHt.cjs"),l=require("react"),L=require("./index-CyZ1lmi_.cjs"),j=require("./index-BS2TADPj.cjs"),b=require("./DropdownSelect-Doz3mCrM.cjs"),U=require("./checkIfMultiple-wg6hJLXy.cjs"),$=require("./SingleGraphDashboard.cjs"),I=require("./SingleGraphDashboardThreeDGraphs.cjs"),J=require("./SingleGraphDashboardGeoHubMaps.cjs"),p=require("./fetchAndParseData-l5HGMAEs.cjs"),B=require("./getUniqValue-RViz8tTw.cjs"),K=require("./GraphHeader.cjs"),M=require("./filterData-T5DQBE9b.cjs"),q=require("./transformDataForSelect-YmStusCI.cjs"),Q=require("./GraphContainer-d8A46BK2.cjs"),T=v=>v.map(a=>a.columnWidth||1).reduce((a,g)=>a+g,0),X=["barChart","choroplethMap","biVariateChoroplethMap","circlePacking","treeMap"];function Y(v){const{dashboardID:w,dashboardLayout:r,dataSettings:a,filters:g,debugMode:o,theme:m="light",readableHeader:C,dataFilters:E,noOfFiltersPerRow:S=4,filterPosition:R,uiMode:d="normal",graphStyles:D,graphClassNames:y}=v,[f,F]=l.useState(void 0),[h,H]=l.useState(void 0),[n,O]=l.useState([]),A=["threeDGlobe"],N=["geoHubCompareMap","geoHubMap","geoHubMapWithLayerSelection"],G={ignoreCase:!0,ignoreAccents:!0,trim:!0},V=l.useEffectEvent(()=>{const t=(g||[]).map(s=>({filter:s.column,label:s.label||`Filter by ${s.column}`,singleSelect:s.singleSelect,clearable:s.clearable,defaultValue:q.transformDefaultValue(s.defaultValue),value:q.transformDefaultValue(s.defaultValue),availableValues:B.getUniqValue(h,s.column).filter(e=>!s.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})),allowSelectAll:s.allowSelectAll,width:s.width}));O(t)}),k=l.useEffectEvent(()=>{if(!h||n.length===0)F(h);else{const t=h.filter(s=>n.every(e=>e.value&&j.flattenDeep([e.value]).length>0?L.intersection(j.flattenDeep([s[e.filter]]),j.flattenDeep([e.value]).map(u=>u.value)).length>0:!0));F(t)}});l.useEffect(()=>{k()},[n,h]),l.useEffect(()=>{(async()=>{try{const s=a.dataURL?typeof a.dataURL=="string"?a.fileType==="json"?await p.fetchAndParseJSON(a.dataURL,a.columnsToArray,a.dataTransformation,o):a.fileType==="api"?await p.fetchAndTransformDataFromAPI(a.dataURL,a.apiHeaders,a.columnsToArray,a.dataTransformation,o):await p.fetchAndParseCSV(a.dataURL,a.dataTransformation,a.columnsToArray,o,a.delimiter,!0):await p.fetchAndParseMultipleDataSources(a.dataURL,a.idColumnTitle):await p.transformColumnsToArray(a.data,a.columnsToArray);H(s)}catch(s){console.error("Data fetching error:",s)}})(),V()},[a,o]),l.useEffect(()=>{V()},[g]);const x=(t,s)=>{O(e=>e.map(u=>u.filter===t?{...u,value:s}:u))};return i.jsxRuntimeExports.jsxs(Q.GraphContainer,{id:w,"aria-label":"This is a dashboard",backgroundColor:r.backgroundColor??!1,theme:m||"light",language:r.language||"en",padding:r.padding,children:[r.title||r.description?i.jsxRuntimeExports.jsx(K.GraphHeader,{graphTitle:r.title,graphDescription:r.description,isDashboard:!0}):null,i.jsxRuntimeExports.jsxs("div",{className:"flex gap-4 flex-wrap",children:[n.length!==0?i.jsxRuntimeExports.jsx("div",{className:"flex-grow flex-shrink-0",style:{width:R==="side"?"280px":"100%"},children:i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-start gap-4 w-full sticky top-4",children:n?.map((t,s)=>i.jsxRuntimeExports.jsxs("div",{style:{width:t.width||`calc(${100/S}% - ${(S-1)/S}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},children:[i.jsxRuntimeExports.jsx(U.b,{className:"mb-2",children:t.label}),t.singleSelect?i.jsxRuntimeExports.jsx(b.ja,{options:t.availableValues,isClearable:t.clearable===void 0?!0:t.clearable,size:"sm",variant:d,isMulti:!1,isSearchable:!0,filterOption:b.Du(G),onChange:e=>{x(t.filter,e)},defaultValue:t.defaultValue,value:t.value}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(b.ja,{options:t.availableValues,isMulti:!0,size:"sm",isClearable:t.clearable===void 0?!0:t.clearable,variant:d,isSearchable:!0,controlShouldRenderValue:!0,closeMenuOnSelect:!1,hideSelectedOptions:!1,filterOption:b.Du(G),onChange:e=>{x(t.filter,e)},value:t.value,defaultValue:t.defaultValue}),t.allowSelectAll?i.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{x(t.filter,t.availableValues)},children:"Select all options"}):null]})]},s))})}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]",style:{width:R==="side"?"calc(100% - 280px - 1rem)":"100%"},children:r.rows.map((t,s)=>i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-stretch gap-4 w-full h-auto",style:{minHeight:`${t.height||0}px`},children:t.columns.map((e,u)=>i.jsxRuntimeExports.jsx("div",{className:"flex bg-transparent grow min-w-60",style:{width:`calc(${100*(e.columnWidth||1)/T(t.columns)}% - ${(T(t.columns)-(e.columnWidth||1))/T(t.columns)}rem)`,minHeight:"inherit"},children:A.includes(e.graphType)?i.jsxRuntimeExports.jsx(I.SingleGraphDashboardThreeDGraphs,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,minHeight:void 0,relativeHeight:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||D,classNames:e.settings?.classNames||y,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||r.language,theme:e.settings?.theme||m},dataSettings:{data:f?M.filterData(f,E||[]):void 0},dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:o,readableHeader:C||[]}):N.includes(e.graphType)?i.jsxRuntimeExports.jsx(J.SingleGraphDashboardGeoHubMaps,{graphType:e.graphType,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||D,classNames:e.settings?.classNames||y,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||r.language,theme:e.settings?.theme||m},debugMode:o}):i.jsxRuntimeExports.jsx($.SingleGraphDashboard,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:d,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||D,classNames:e.settings?.classNames||y,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||r.language,theme:e.settings?.theme||m},dataSettings:{data:f?M.filterData(f,E||[]):void 0},updateFilters:e.attachedFilter&&X.indexOf(e.graphType)!==-1&&n.findIndex(c=>c.filter===e.attachedFilter)!==-1?c=>{const P=n.findIndex(z=>z.filter===e.attachedFilter),W=c?n[P].singleSelect?{value:c,label:c}:[{value:c,label:c}]:void 0;x(e.attachedFilter,W)}:void 0,dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:o,readableHeader:C||[]})},u))},s))})]})]})}exports.PerformanceIntensiveMultiGraphDashboard=Y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-CTPQjnHt.cjs"),o=require("react"),U=require("./index-CyZ1lmi_.cjs"),T=require("./index-BS2TADPj.cjs"),b=require("./DropdownSelect-Doz3mCrM.cjs"),g=require("./checkIfMultiple-wg6hJLXy.cjs"),z=require("./SingleGraphDashboard.cjs"),I=require("./SingleGraphDashboardThreeDGraphs.cjs"),J=require("./SingleGraphDashboardGeoHubMaps.cjs"),m=require("./fetchAndParseData-l5HGMAEs.cjs"),B=require("./getUniqValue-NX8DgwND.cjs"),K=require("./GraphHeader.cjs"),H=require("./filterData-T5DQBE9b.cjs"),M=require("./transformDataForSelect-YmStusCI.cjs"),Q=require("./GraphContainer-d8A46BK2.cjs"),w=S=>S.map(t=>t.columnWidth||1).reduce((t,f)=>t+f,0),X=["barChart","choroplethMap","biVariateChoroplethMap","circlePacking","treeMap"];function Y(S){const{dashboardID:C,dashboardLayout:n,dataSettings:t,filters:f,debugMode:u,theme:x="light",readableHeader:E,dataFilters:V,noOfFiltersPerRow:D=4,filterPosition:R,uiMode:c="normal",graphStyles:y,graphClassNames:j}=S,[v,F]=o.useState(void 0),[d,A]=o.useState(void 0),[l,G]=o.useState([]),N=["threeDGlobe"],$=["geoHubCompareMap","geoHubMap","geoHubMapWithLayerSelection"],O={ignoreCase:!0,ignoreAccents:!0,trim:!0},q=o.useEffectEvent(()=>{const a=(f||[]).map(s=>({filter:s.column,label:s.label||`Filter by ${s.column}`,singleSelect:s.singleSelect,clearable:s.clearable,defaultValue:M.transformDefaultValue(s.defaultValue),value:M.transformDefaultValue(s.defaultValue),availableValues:B.getUniqValue(d,s.column).filter(e=>!s.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})),allowSelectAll:s.allowSelectAll,width:s.width}));G(a)}),P=o.useEffectEvent(()=>{if(!d||l.length===0)F(d);else{const a=d.filter(s=>l.every(e=>e.value&&T.flattenDeep([e.value]).length>0?U.intersection(T.flattenDeep([s[e.filter]]),T.flattenDeep([e.value]).map(r=>r.value)).length>0:!0));F(a)}});o.useEffect(()=>{P()},[l,d]),o.useEffect(()=>{(async()=>{try{const s=t.dataURL?typeof t.dataURL=="string"?t.fileType==="json"?await m.fetchAndParseJSON(t.dataURL,t.columnsToArray,t.dataTransformation,u):t.fileType==="api"?await m.fetchAndTransformDataFromAPI(t.dataURL,t.apiHeaders,t.columnsToArray,t.dataTransformation,u):await m.fetchAndParseCSV(t.dataURL,t.dataTransformation,t.columnsToArray,u,t.delimiter,!0):await m.fetchAndParseMultipleDataSources(t.dataURL,t.idColumnTitle):await m.transformColumnsToArray(t.data,t.columnsToArray);A(s)}catch(s){console.error("Data fetching error:",s)}})(),q()},[t,u]),o.useEffect(()=>{q()},[f,d]);const p=(a,s)=>{G(e=>e.map(r=>r.filter===a?{...r,value:s}:r))};return i.jsxRuntimeExports.jsxs(Q.GraphContainer,{id:C,"aria-label":"This is a dashboard",backgroundColor:n.backgroundColor??!1,theme:x||"light",language:n.language||"en",padding:n.padding,children:[n.title||n.description?i.jsxRuntimeExports.jsx(K.GraphHeader,{graphTitle:n.title,graphDescription:n.description,isDashboard:!0}):null,i.jsxRuntimeExports.jsxs("div",{className:"flex gap-4 flex-wrap",children:[l.length!==0?i.jsxRuntimeExports.jsx("div",{className:"flex-grow flex-shrink-0",style:{width:R==="side"?"280px":"100%"},children:i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-start gap-4 w-full sticky top-4",children:l?.map((a,s)=>i.jsxRuntimeExports.jsxs("div",{style:{width:a.width||`calc(${100/D}% - ${(D-1)/D}rem)`,flexGrow:a.width?0:1,flexShrink:a.ui!=="radio"||a.width?0:1,minWidth:"240px"},children:[i.jsxRuntimeExports.jsx(g.b,{className:"mb-2",children:a.label}),a.singleSelect?a.ui!=="radio"?i.jsxRuntimeExports.jsx(b.ja,{options:a.availableValues,variant:c,isClearable:a.clearable===void 0?!0:a.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:b.Du(O),onChange:e=>{p(a.filter,e)},value:a.value,defaultValue:a.defaultValue}):i.jsxRuntimeExports.jsx(g.ye,{variant:c,defaultValue:a.defaultValue.value,onValueChange:e=>{p(a.filter,a.availableValues.filter(r=>r.value===e))},children:a.availableValues.map((e,r)=>i.jsxRuntimeExports.jsx(g.he,{label:`${e.label}`,value:`${e.value}`},r))}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[a.ui!=="radio"?i.jsxRuntimeExports.jsx(b.ja,{options:a.availableValues,variant:c,size:"sm",isMulti:!0,isClearable:a.clearable===void 0?!0:a.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:b.Du(O),onChange:e=>{p(a.filter,e)},value:a.value,defaultValue:a.defaultValue}):i.jsxRuntimeExports.jsx(g.$,{variant:c,defaultValue:a.defaultValue?a.defaultValue.map(e=>`${e.value}`):[],value:a.value?a.value.map(e=>`${e.value}`):void 0,onValueChange:e=>{p(a.filter,a.availableValues.filter(r=>e.indexOf(`${r.value}`)!==-1))},children:a.availableValues.map((e,r)=>i.jsxRuntimeExports.jsx(g.P,{label:`${e.label}`,value:`${e.value}`},r))}),a.allowSelectAll?i.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{p(a.filter,a.availableValues)},children:"Select all options"}):null]})]},s))})}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]",style:{width:R==="side"?"calc(100% - 280px - 1rem)":"100%"},children:n.rows.map((a,s)=>i.jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-stretch gap-4 w-full h-auto",style:{minHeight:`${a.height||0}px`},children:a.columns.map((e,r)=>i.jsxRuntimeExports.jsx("div",{className:"flex bg-transparent grow min-w-60",style:{width:`calc(${100*(e.columnWidth||1)/w(a.columns)}% - ${(w(a.columns)-(e.columnWidth||1))/w(a.columns)}rem)`,minHeight:"inherit"},children:N.includes(e.graphType)?i.jsxRuntimeExports.jsx(I.SingleGraphDashboardThreeDGraphs,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:c,graphSettings:{...e.settings||{},width:void 0,height:void 0,minHeight:void 0,relativeHeight:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||y,classNames:e.settings?.classNames||j,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||n.language,theme:e.settings?.theme||x},dataSettings:{data:v?H.filterData(v,V||[]):void 0},dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:u,readableHeader:E||[]}):$.includes(e.graphType)?i.jsxRuntimeExports.jsx(J.SingleGraphDashboardGeoHubMaps,{graphType:e.graphType,uiMode:c,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||y,classNames:e.settings?.classNames||j,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||n.language,theme:e.settings?.theme||x},debugMode:u}):i.jsxRuntimeExports.jsx(z.SingleGraphDashboard,{graphType:e.graphType,dataFilters:e.dataFilters,uiMode:c,graphSettings:{...e.settings||{},width:void 0,height:void 0,resetSelectionOnDoubleClick:e.attachedFilter?!1:e.settings?.resetSelectionOnDoubleClick,styles:e.settings?.styles||y,classNames:e.settings?.classNames||j,radius:e.graphType==="donutChart"?void 0:e.settings?.radius,size:e.graphType==="unitChart"?e.settings?.size:void 0,language:e.settings?.language||n.language,theme:e.settings?.theme||x},dataSettings:{data:v?H.filterData(v,V||[]):void 0},updateFilters:e.attachedFilter&&X.indexOf(e.graphType)!==-1&&l.findIndex(h=>h.filter===e.attachedFilter)!==-1?h=>{const k=l.findIndex(L=>L.filter===e.attachedFilter),W=h?l[k].singleSelect?{value:h,label:h}:[{value:h,label:h}]:void 0;p(e.attachedFilter,W)}:void 0,dataTransform:e.dataTransform,dataSelectionOptions:e.dataSelectionOptions,advancedDataSelectionOptions:e.advancedDataSelectionOptions,graphDataConfiguration:e.graphDataConfiguration,debugMode:u,readableHeader:E||[]})},r))},s))})]})]})}exports.PerformanceIntensiveMultiGraphDashboard=Y;
2
2
  //# sourceMappingURL=PerformanceIntensiveMultiGraphDashboard.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceIntensiveMultiGraphDashboard.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { SingleGraphDashboard } from '../SingleGraphDashboard';\r\n\r\nimport { SingleGraphDashboardThreeDGraphs } from './SingleGraphDashboardThreeDGraphs';\r\nimport { SingleGraphDashboardGeoHubMaps } from './SingleGraphDashboardGeoHubMaps';\r\n\r\nimport {\r\n ClassNameObject,\r\n PerformanceIntensiveDashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\r\n PerformanceIntensiveDashboardColumnDataType,\r\n ThreeDGraphType,\r\n GeoHubGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\nimport { GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: PerformanceIntensiveDashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: PerformanceIntensiveDashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function PerformanceIntensiveMultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const threeDGraphs = ['threeDGlobe'];\r\n const geoHubMaps = ['geoHubCompareMap', 'geoHubMap', 'geoHubMapWithLayerSelection'];\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n size='sm'\r\n variant={uiMode}\r\n isMulti={false}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n value={d.value}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isMulti\r\n size='sm'\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n closeMenuOnSelect={false}\r\n hideSelectedOptions={false}\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n {threeDGraphs.includes(el.graphType) ? (\r\n <SingleGraphDashboardThreeDGraphs\r\n graphType={el.graphType as ThreeDGraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n minHeight: undefined,\r\n relativeHeight: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n ) : geoHubMaps.includes(el.graphType) ? (\r\n <SingleGraphDashboardGeoHubMaps\r\n graphType={el.graphType as GeoHubGraphType}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n debugMode={debugMode}\r\n />\r\n ) : (\r\n <SingleGraphDashboard\r\n graphType={el.graphType as GraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType as GraphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","PerformanceIntensiveMultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","threeDGraphs","geoHubMaps","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","createFilter","Fragment","rows","minHeight","height","j","graphType","SingleGraphDashboardThreeDGraphs","settings","relativeHeight","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration","SingleGraphDashboardGeoHubMaps","SingleGraphDashboard","indexOf","findIndex","dClicked","indx"],"mappings":"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"}
1
+ {"version":3,"file":"PerformanceIntensiveMultiGraphDashboard.cjs","sources":["../src/Components/Dashboard/PerformanceIntensive/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\n\r\nimport { SingleGraphDashboard } from '../SingleGraphDashboard';\r\n\r\nimport { SingleGraphDashboardThreeDGraphs } from './SingleGraphDashboardThreeDGraphs';\r\nimport { SingleGraphDashboardGeoHubMaps } from './SingleGraphDashboardGeoHubMaps';\r\n\r\nimport {\r\n ClassNameObject,\r\n PerformanceIntensiveDashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\r\n PerformanceIntensiveDashboardColumnDataType,\r\n ThreeDGraphType,\r\n GeoHubGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\nimport { GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: PerformanceIntensiveDashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: PerformanceIntensiveDashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function PerformanceIntensiveMultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const threeDGraphs = ['threeDGlobe'];\r\n const geoHubMaps = ['geoHubCompareMap', 'geoHubMap', 'geoHubMapWithLayerSelection'];\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\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 value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\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 value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n {threeDGraphs.includes(el.graphType) ? (\r\n <SingleGraphDashboardThreeDGraphs\r\n graphType={el.graphType as ThreeDGraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n minHeight: undefined,\r\n relativeHeight: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n ) : geoHubMaps.includes(el.graphType) ? (\r\n <SingleGraphDashboardGeoHubMaps\r\n graphType={el.graphType as GeoHubGraphType}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n debugMode={debugMode}\r\n />\r\n ) : (\r\n <SingleGraphDashboard\r\n graphType={el.graphType as GraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType as GraphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","PerformanceIntensiveMultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","threeDGraphs","geoHubMaps","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","ui","minWidth","Label","DropdownSelect","createFilter","RadioGroup","j","RadioGroupItem","Fragment","CheckboxGroup","indexOf","CheckboxGroupItem","rows","minHeight","height","graphType","SingleGraphDashboardThreeDGraphs","settings","relativeHeight","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration","SingleGraphDashboardGeoHubMaps","SingleGraphDashboard","findIndex","dClicked","indx"],"mappings":"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"}
@@ -95,6 +95,7 @@ declare interface ClassNameObject {
95
95
  regLine?: string;
96
96
  dataCards?: string;
97
97
  colorLegend?: string;
98
+ modal?: string;
98
99
  }
99
100
 
100
101
  declare interface ColumnConfigurationDataType {
@@ -214,6 +215,7 @@ declare type FilterUiSettingsDataType = {
214
215
  excludeValues?: string[];
215
216
  allowSelectAll?: boolean;
216
217
  width?: string;
218
+ ui?: 'select' | 'radio';
217
219
  };
218
220
 
219
221
  declare interface FogDataType {
@@ -618,6 +620,7 @@ declare interface StyleObject {
618
620
  mouseOverLine?: React.CSSProperties;
619
621
  regLine?: React.CSSProperties;
620
622
  dataCards?: React.CSSProperties;
623
+ modal?: React.CSSProperties;
621
624
  }
622
625
 
623
626
  declare type ThreeDGraphType = 'threeDGlobe';