@undp/data-viz 2.4.1 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AreaChart.cjs +1 -1
- package/dist/AreaChart.cjs.map +1 -1
- package/dist/AreaChart.d.ts +11 -9
- package/dist/AreaChart.js +320 -322
- package/dist/AreaChart.js.map +1 -1
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.d.ts +15 -25
- package/dist/BarGraph.js +1694 -1694
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.d.ts +13 -9
- package/dist/BasicStatCard.js +79 -81
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.d.ts +11 -9
- package/dist/BeeSwarmChart.js +335 -336
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +13 -3
- package/dist/BiVariateChoroplethMap.js +309 -304
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.d.ts +11 -5
- package/dist/BulletChart.js +560 -559
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.d.ts +11 -9
- package/dist/ButterflyChart.js +348 -350
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +11 -3
- package/dist/ChoroplethMap.js +314 -311
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.d.ts +11 -9
- package/dist/CirclePackingGraph.js +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.d.ts +1 -1
- package/dist/DataCards.js +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.d.ts +4 -5
- package/dist/DataTable.js +114 -116
- package/dist/DataTable.js.map +1 -1
- package/dist/{DetailsModal-jmmKRMRM.cjs → DetailsModal-Du8Fr1QD.cjs} +2 -2
- package/dist/{DetailsModal-jmmKRMRM.cjs.map → DetailsModal-Du8Fr1QD.cjs.map} +1 -1
- package/dist/{DetailsModal-B2XBWR7w.js → DetailsModal-GqEbGHY2.js} +2 -2
- package/dist/{DetailsModal-B2XBWR7w.js.map → DetailsModal-GqEbGHY2.js.map} +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.d.ts +11 -9
- package/dist/DifferenceLineChart.js +502 -504
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.d.ts +14 -9
- package/dist/DonutChart.js +174 -179
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +1 -1
- package/dist/DotDensityMap.js +270 -267
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.d.ts +13 -9
- package/dist/DualAxisLineChart.js +341 -351
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.d.ts +11 -9
- package/dist/DumbbellChart.js +592 -593
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.d.ts +1 -1
- package/dist/GeoHubCompareMaps.js +1 -1
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.d.ts +1 -1
- package/dist/GeoHubMap.js +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.d.ts +1 -1
- package/dist/GeoHubMapWithLayerSelection.js +1 -1
- package/dist/GraphEl-BgkDbq50.cjs +2 -0
- package/dist/GraphEl-BgkDbq50.cjs.map +1 -0
- package/dist/GraphEl-Ch0uAeZw.js +1830 -0
- package/dist/GraphEl-Ch0uAeZw.js.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.d.ts +29 -16
- package/dist/GriddedGraphs.js +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +29 -16
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.d.ts +11 -9
- package/dist/HeatMap.js +203 -205
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.cjs.map +1 -1
- package/dist/Histogram.d.ts +11 -5
- package/dist/Histogram.js +88 -89
- package/dist/Histogram.js.map +1 -1
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.cjs.map +1 -1
- package/dist/HybridMap.d.ts +11 -3
- package/dist/HybridMap.js +339 -336
- package/dist/HybridMap.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +1 -1
- package/dist/ImageDownloadButton.js +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.d.ts +11 -9
- package/dist/LineChartWithConfidenceInterval.js +393 -395
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +1 -1
- package/dist/LinearColorLegend.js +1 -1
- package/dist/MultiGraphDashboard.d.ts +29 -16
- package/dist/MultiGraphDashboardFromConfig.d.ts +29 -16
- package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.d.ts +11 -9
- package/dist/MultiLineAltChart.js +411 -413
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.d.ts +11 -9
- package/dist/MultiLineChart.js +438 -440
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +13 -13
- package/dist/ParetoChart.js +347 -355
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +29 -16
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +29 -16
- package/dist/PerformanceIntensiveScrollStory.d.ts +29 -16
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.d.ts +11 -5
- package/dist/RadarChart.js +213 -213
- package/dist/RadarChart.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.d.ts +11 -9
- package/dist/SankeyChart.js +448 -450
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +15 -13
- package/dist/ScatterPlot.js +477 -483
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.d.ts +29 -16
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.d.ts +11 -9
- package/dist/SimpleLineChart.js +362 -364
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.d.ts +29 -16
- package/dist/SingleGraphDashboard.js +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +29 -16
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +29 -16
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +29 -16
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +29 -16
- package/dist/SingleGraphDashboardThreeDGraphs.js +40 -39
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +29 -16
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.d.ts +1 -1
- package/dist/SlopeChart.js +2 -2
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.d.ts +1 -1
- package/dist/SparkLine.js +1 -1
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.d.ts +11 -9
- package/dist/StatCardFromData.js +113 -116
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.d.ts +11 -9
- package/dist/StripChart.js +434 -435
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +11 -3
- package/dist/ThreeDGlobe.js +143 -143
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.js +1 -1
- package/dist/{Tooltip-Bj-s__cI.js → Tooltip-3EYDVa3w.js} +2 -2
- package/dist/{Tooltip-Bj-s__cI.js.map → Tooltip-3EYDVa3w.js.map} +1 -1
- package/dist/{Tooltip-Hr46paWP.cjs → Tooltip-C9F3uYG0.cjs} +2 -2
- package/dist/{Tooltip-Hr46paWP.cjs.map → Tooltip-C9F3uYG0.cjs.map} +1 -1
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.d.ts +11 -9
- package/dist/TreeMapGraph.js +369 -371
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +29 -16
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.d.ts +11 -5
- package/dist/UnitChart.js +118 -119
- package/dist/UnitChart.js.map +1 -1
- package/dist/WaterfallChart.cjs +1 -1
- package/dist/WaterfallChart.cjs.map +1 -1
- package/dist/WaterfallChart.d.ts +11 -9
- package/dist/WaterfallChart.js +306 -308
- package/dist/WaterfallChart.js.map +1 -1
- package/dist/XTicksAndGridLines-B4UhDVyU.cjs +2 -0
- package/dist/XTicksAndGridLines-B4UhDVyU.cjs.map +1 -0
- package/dist/XTicksAndGridLines-CkYwVshF.js +40 -0
- package/dist/XTicksAndGridLines-CkYwVshF.js.map +1 -0
- package/dist/YTicksAndGridLines-BbujwxOB.js +40 -0
- package/dist/YTicksAndGridLines-BbujwxOB.js.map +1 -0
- package/dist/YTicksAndGridLines-sT3zdCs6.cjs +2 -0
- package/dist/YTicksAndGridLines-sT3zdCs6.cjs.map +1 -0
- package/dist/{imageDownload-Diofs_vY.js → imageDownload-BYsNEtMS.js} +11 -11
- package/dist/{imageDownload-Diofs_vY.js.map → imageDownload-BYsNEtMS.js.map} +1 -1
- package/dist/{imageDownload-61q6jyJW.cjs → imageDownload-CkMwA7Cw.cjs} +4 -4
- package/dist/{imageDownload-61q6jyJW.cjs.map → imageDownload-CkMwA7Cw.cjs.map} +1 -1
- package/dist/index-BPyj_6hG.js +375 -0
- package/dist/index-BPyj_6hG.js.map +1 -0
- package/dist/index-DuLvdHo2.cjs +2 -0
- package/dist/index-DuLvdHo2.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +108 -245
- package/dist/index.js +3 -3
- package/dist/numberFormattingFunction-BUUV_luR.js +28 -0
- package/dist/numberFormattingFunction-BUUV_luR.js.map +1 -0
- package/dist/numberFormattingFunction-u2iNHL_c.cjs +2 -0
- package/dist/numberFormattingFunction-u2iNHL_c.cjs.map +1 -0
- package/dist/{string2HTML-ZoGd08P_.cjs → string2HTML-30nfIm8R.cjs} +2 -2
- package/dist/{string2HTML-ZoGd08P_.cjs.map → string2HTML-30nfIm8R.cjs.map} +1 -1
- package/dist/{string2HTML-BrFperRM.js → string2HTML-DL-pInUB.js} +2 -2
- package/dist/{string2HTML-BrFperRM.js.map → string2HTML-DL-pInUB.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -2
- package/package.json +2 -2
- package/dist/GraphEl-B73N4RIA.js +0 -1906
- package/dist/GraphEl-B73N4RIA.js.map +0 -1
- package/dist/GraphEl-Lt1og0C-.cjs +0 -2
- package/dist/GraphEl-Lt1og0C-.cjs.map +0 -1
- package/dist/XTicksAndGridLines-C5DuC5oY.cjs +0 -2
- package/dist/XTicksAndGridLines-C5DuC5oY.cjs.map +0 -1
- package/dist/XTicksAndGridLines-gdbGX2rm.js +0 -39
- package/dist/XTicksAndGridLines-gdbGX2rm.js.map +0 -1
- package/dist/YTicksAndGridLines-CsNSq9W9.js +0 -39
- package/dist/YTicksAndGridLines-CsNSq9W9.js.map +0 -1
- package/dist/YTicksAndGridLines-DFjm8RCc.cjs +0 -2
- package/dist/YTicksAndGridLines-DFjm8RCc.cjs.map +0 -1
- package/dist/index-B0Awa_de.js +0 -377
- package/dist/index-B0Awa_de.js.map +0 -1
- package/dist/index-CP8cmNzt.cjs +0 -2
- package/dist/index-CP8cmNzt.cjs.map +0 -1
- package/dist/numberFormattingFunction-Cn9R7CM9.cjs +0 -2
- package/dist/numberFormattingFunction-Cn9R7CM9.cjs.map +0 -1
- package/dist/numberFormattingFunction-DqMf_v1m.js +0 -28
- package/dist/numberFormattingFunction-DqMf_v1m.js.map +0 -1
package/dist/BarGraph.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarGraph.cjs","sources":["../src/Components/Graphs/BarGraph/GroupedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/GroupedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/index.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\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 { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n width: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n minValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\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 barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n suffix,\r\n prefix,\r\n showValues,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphHeight, maxBarThickness * barOrder.length) : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, y.bandwidth()])\r\n .paddingInner(0.1);\r\n const xTicks = x.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {!checkIfNullOrUndefined(el) ? (\r\n <motion.rect\r\n y={subBarScale(`${j}`)}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: !checkIfNullOrUndefined(el)\r\n ? (el as number) >= 0\r\n ? x(el as number) - x(0)\r\n : x(0) - x(el as number)\r\n : 0,\r\n x: (el as number) >= 0 ? x(0) : x(el as number),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={subBarScale.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\r\n style={{\r\n textAnchor: el ? (el < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dx={el ? (el < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: { x: x(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n x: x(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\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={0}\r\n x={0 - margin.left}\r\n width={x(minValue < 0 ? 0 : minValue) + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphWidth, maxBarThickness * barOrder.length) : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, x.bandwidth()])\r\n .paddingInner(0.1);\r\n const yTicks = y.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 <Axis\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n hideAxisLine={hideAxisLine}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={subBarScale(`${j}`)}\r\n width={subBarScale.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n y: y(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n height: !checkIfNullOrUndefined(el)\r\n ? Math.abs(y(el as number) - y(0))\r\n : 0,\r\n y: !checkIfNullOrUndefined(el)\r\n ? (el as number) > 0\r\n ? y(el as number)\r\n : y(0)\r\n : y(0),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\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={el ? (el >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: { y: y(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n y: y(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\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 ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport orderBy from 'lodash.orderby';\r\nimport sum from 'lodash.sum';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels?: boolean;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n showColorScale?: boolean;\r\n minHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n minValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n labelOrder?: string[];\r\n language?: Languages;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n ariaLabel?: string;\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 barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n locale?: string;\r\n}\r\n\r\nexport function GroupedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix = '',\r\n prefix = '',\r\n showValues = true,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortParameter,\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n locale = 'en',\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\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 {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n )\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n )\r\n : ensureCompleteDataForStackedBarChart(\r\n data,\r\n timeline.dateFormat || 'yyyy',\r\n ).filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n styles={styles}\r\n classNames={classNames}\r\n colorDomain={colorDomain}\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 locale={locale}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n BarGraphDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\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 { Colors } from '@/Components/ColorPalette';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n barColor: string[];\r\n colorDomain: string[];\r\n suffix: string;\r\n prefix: string;\r\n barPadding: number;\r\n showValues: boolean;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n showLabels: boolean;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n maxValue: number;\r\n minValue: number;\r\n highlightedDataPoints?: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n labelOrder?: string[];\r\n rtl: boolean;\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n trackColor?: string;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n highlightedDataPoints,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n rtl,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n // 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: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\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 = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n 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 {trackColor && (\r\n <motion.rect\r\n height={y.bandwidth()}\r\n variants={{\r\n initial: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n width: d.size >= 0 ? x(d.size) - x(0) : x(0) - x(d.size),\r\n x: d.size >= 0 ? x(0) : x(d.size),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={y.bandwidth()}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(d.id) || 0}\r\n x={(d.size || 0) < 0 ? x(0) : 0 - margin.left}\r\n width={(d.size || 0) < 0 ? width - x(0) : x(0) + margin.left}\r\n height={y.bandwidth()}\r\n alignment={d.size ? (d.size < 0 ? 'left' : 'right') : 'right'}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: d.size ? (d.size < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? ' fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dx={d.size ? (d.size < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: d.size ? x(d.size) : x(0),\r\n opacity: 1,\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(d.size, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n colorDomain,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, _i) =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && 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 {trackColor && (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n x: x(`${d.id}`),\r\n y: y(0),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n height: d.size ? Math.abs(y(d.size) - y(0)) : 0,\r\n y: d.size ? (d.size > 0 ? y(d.size) : y(0)) : y(0),\r\n x: x(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={(d.size || 0) < 0 ? 0 : y(0) + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={(d.size || 0) < 0 ? y(0) - 5 : margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment={(d.size || 0) < 0 ? 'bottom' : 'top'}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? 'fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dy={d.size ? (d.size >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(0),\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(d.size || 0),\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(d.size, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n BarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForBarChart } from '@/Utils/ensureCompleteData';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n colors?: string | string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n minHeight?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showValues?: boolean;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain?: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n showLabels?: boolean;\r\n showColorScale?: boolean;\r\n maxValue?: number;\r\n minValue?: number;\r\n trackColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n highlightedDataPoints?: (string | number)[];\r\n dimmedOpacity?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n sortData?: 'asc' | 'desc';\r\n language?: Languages;\r\n showNAColor?: boolean;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\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 barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n locale?: string;\r\n}\r\n\r\nexport function SimpleBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n barPadding = 0.25,\r\n showValues = true,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n highlightedDataPoints,\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale = true,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n sortData,\r\n labelOrder,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n orientation = 'vertical',\r\n trackColor,\r\n hideAxisLine = false,\r\n locale = 'en',\r\n } = props;\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\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 {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center pb-4' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as (string | number)[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortData\r\n ? orderBy(\r\n ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)),\r\n [\r\n d =>\r\n d.size === undefined\r\n ? sortData === 'asc'\r\n ? (orientation === 'horizontal' ? 1 : -1) * Infinity\r\n : (orientation === 'horizontal' ? -1 : 1) * Infinity\r\n : d.size,\r\n ],\r\n [sortData],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColor={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n selectedColor={selectedColor}\r\n trackColor={trackColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n barPadding={barPadding}\r\n showValues={showValues}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n locale={locale}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport sum from 'lodash.sum';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\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 { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels: boolean;\r\n bottomMargin?: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\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 barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n truncateBy,\r\n width,\r\n height,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showLabels,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([0, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: 0, y: y(`${d.id}`) },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {el ? (\r\n <motion.rect\r\n key={j}\r\n y={0}\r\n style={{ fill: barColors[j] }}\r\n height={y.bandwidth()}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: x(el || 0),\r\n x: x(\r\n j === 0 ? 0 : sum(d.size.filter((element, k) => k < j && element)),\r\n ),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={y.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n dy='0.33em'\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n x:\r\n x(\r\n j === 0\r\n ? 0\r\n : sum(d.size.filter((element, k) => k < j && element)),\r\n ) +\r\n x(el || 0) / 2,\r\n opacity:\r\n el &&\r\n x(el) /\r\n numberFormattingFunction(\r\n el,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n ).length >\r\n 12\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\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={0}\r\n x={0 - margin.left}\r\n width={0 + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n className={cn(\r\n 'graph-value graph-value-total text-sm',\r\n !valueColor ? ' fill-primary-gray-700 dark:fill-primary-gray-300' : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n textAnchor: 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n y={y.bandwidth() / 2}\r\n dx={5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n },\r\n whileInView: {\r\n x: x(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(0)}\r\n x2={x(0)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n barPadding,\r\n showLabels,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([0, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n 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 <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(0)}\r\n y2={y(0)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(0, naLabel, precision, prefix, suffix, locale)\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(0),\r\n dx: 0,\r\n dy: -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: x(`${d.id}`), y: 0 },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n transition={{ duration: animate.duration }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={0}\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n fill: barColors[j],\r\n y: y(0),\r\n },\r\n whileInView: {\r\n height: Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ),\r\n y: y(sum(d.size.filter((element, k) => k <= j && element))),\r\n fill: barColors[j],\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 height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={x.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n y:\r\n y(sum(d.size.filter((element, k) => k <= j && element))) +\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) /\r\n 2,\r\n opacity:\r\n el &&\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) > 20\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {numberFormattingFunction(el, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n x={x.bandwidth() / 2}\r\n dy={-10}\r\n className={cn(\r\n 'graph-value graph-value-total',\r\n !valueColor\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n : 'text-sm',\r\n classNames?.graphObjectValues,\r\n )}\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n ...(valueColor && { fill: valueColor }),\r\n },\r\n whileInView: {\r\n y: y(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor && { fill: valueColor }),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n showLabels?: boolean;\r\n relativeHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n language?: Languages;\r\n minHeight?: number;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\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 barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n locale?: string;\r\n showColorScale?: boolean;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n}\r\n\r\nexport function StackedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showLabels = true,\r\n relativeHeight,\r\n showValues = true,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n sortParameter,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n showColorScale = true,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n locale = 'en',\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\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 {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d => sum(d.size.filter(l => !checkIfNullOrUndefined(l))) || 0),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n rtl={language === 'he' || language === 'ar'}\r\n labelOrder={labelOrder}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n colorDomain={colorDomain}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n locale={locale}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import { GroupedBarGraphEl } from './GroupedBarGraph';\r\nimport { SimpleBarGraphEl } from './SimpleBarGraph';\r\nimport { StackedBarGraphEl } from './StackedBarGraph';\r\n\r\nimport {\r\n ReferenceDataType,\r\n BarGraphDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n GroupedBarGraphDataType,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for bars */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Track color (i.e. the color of the bars background) of the bar chart */\r\n trackColor?: string;\r\n /** Toggles if data point which are undefined or has value null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\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 SimpleBarGraph(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n suffix,\r\n prefix,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n sortData,\r\n labelOrder,\r\n showNAColor,\r\n minHeight,\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n timeline,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine = false,\r\n locale,\r\n } = props;\r\n return (\r\n <SimpleBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={suffix}\r\n prefix={prefix}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n showColorScale={showColorScale}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n sortData={sortData}\r\n labelOrder={labelOrder}\r\n showNAColor={showNAColor}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n trackColor={trackColor}\r\n hideAxisLine={hideAxisLine}\r\n locale={locale}\r\n />\r\n );\r\n}\r\n\r\ninterface GroupedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\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 GroupedBarGraph(props: GroupedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix,\r\n prefix,\r\n showValues,\r\n padding,\r\n backgroundColor,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n labelOrder,\r\n minHeight,\r\n theme,\r\n sortParameter,\r\n sortData,\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n precision,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n locale,\r\n } = props;\r\n\r\n return (\r\n <GroupedBarGraphEl\r\n orientation={orientation}\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n truncateBy={truncateBy}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n padding={padding}\r\n backgroundColor={backgroundColor}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n theme={theme}\r\n maxBarThickness={maxBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n hideAxisLine={hideAxisLine}\r\n locale={locale}\r\n />\r\n );\r\n}\r\n\r\ninterface StackedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\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 StackedBarGraph(props: StackedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n suffix,\r\n prefix,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n tooltip,\r\n onSeriesMouseOver,\r\n relativeHeight,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n labelOrder,\r\n minHeight,\r\n maxBarThickness,\r\n sortParameter,\r\n sortData,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n precision,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n locale,\r\n } = props;\r\n\r\n return (\r\n <StackedBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={suffix}\r\n prefix={prefix}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n relativeHeight={relativeHeight}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n hideAxisLine={hideAxisLine}\r\n locale={locale}\r\n />\r\n );\r\n}\r\n"],"names":["HorizontalGraph","props","$","_c","data","leftMargin","t0","rightMargin","t1","topMargin","t2","bottomMargin","t3","barColors","barPadding","showTicks","truncateBy","width","height","suffix","prefix","showValues","showLabels","tooltip","onSeriesMouseOver","refValues","maxValue","minValue","onSeriesMouseClick","selectedColor","rtl","labelOrder","maxBarThickness","resetSelectionOnDoubleClick","detailsOnClick","barAxisTitle","valueColor","noOfTicks","styles","classNames","animate","colorDomain","precision","customLayers","naLabel","hideAxisLine","locale","undefined","svgRef","useRef","t4","amount","once","isInView","useInView","t5","t6","top","bottom","left","right","margin","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","t7","idSet","Set","dataWithIdWithoutMissingIds","map","d","i","id","label","add","missingIds","filter","id_0","has","t8","size","length","id_1","Array","fill","dataWithId","_temp","barOrder","T0","T1","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t9","graphObjectValues","xAxis","gridLines","labels","title","yAxis","axis","x","scaleLinear","domain","range","nice","y","scaleBand","Math","min","paddingInner","subBarScale","_temp2","bandwidth","xTicks","ticks","motion","svg","jsx","XTicksAndGridLines","_temp3","_temp4","d_3","t21","t22","t23","t24","AxisTitle","_temp5","_temp6","AnimatePresence","d_6","checkIfNullOrUndefined","jsxs","initial","whileInView","transition","duration","opacity","el","j","event","sizeIndex","clientY","clientX","event_0","isEqual","textAnchor","cn","numberFormattingFunction","YAxesLabels","substring","t25","t26","t27","t28","Axis","el_0","i_1","RefLineX","text","color","value","_temp7","_temp8","Tooltip","modal","DetailsModal","Fragment","d_8","layer","d_7","position","d_5","d_4","d_2","d_1","_d","i_0","d_0","VerticalGraph","_temp9","_temp0","yTicks","dx","dy","YTicksAndGridLines","_temp1","_temp10","t29","t30","t31","_temp11","_temp12","abs","XAxesLabels","RefLineY","_temp13","_temp14","GroupedBarGraphEl","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","showColorScale","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","minHeight","theme","ariaLabel","filterNA","timeline","sortParameter","sortData","orientation","Colors","light","categoricalColors","enabled","autoplay","showOnlyActiveDate","Comp","svgWidth","setSvgWidth","svgHeight","setSvgHeight","play","setPlay","dates","dateFormat","parse","date","Date","getTime","sort","uniqDatesSorted","index","setIndex","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","speed","interval","setInterval","clearInterval","t32","t33","getSliderMarks","markObj","t34","graphContainer","t35","t36","description","GraphHeader","t37","Pause","Play","SliderUI","nextValue","indexOf","nextValue_0","t38","colorLegend","ColorLegendWithMouseOver","t39","EmptyState","t40","orderBy","ensureCompleteDataForStackedBarChart","format","every","d_9","d_10","d_11","d_12","max","_temp16","_temp18","t41","GraphArea","t42","t43","footnote","source","GraphFooter","t44","GraphContainer","d_15","_temp17","l_1","l","d_16","_temp15","l_2","d_13","d_14","l_0","item_1","item","item_0","sum","a","b","barColor","highlightedDataPoints","minBarThickness","dimmedOpacity","trackColor","gray","el_3","el_2","el_1","_i","_temp19","_temp20","_temp21","_temp22","SimpleBarGraphEl","showNAColor","maxNumberOfBars","uniqBy","ensureCompleteDataForBarChart","Infinity","_d_0","primaryColors","d_18","d_17","element","k","getTextColorBasedOnBgColor","element_0","k_0","element_1","k_1","element_2","k_2","element_3","k_3","element_4","k_4","element_5","k_5","element_6","k_6","element_7","StackedBarGraphEl","_d_1","i_2","SimpleBarGraph","GroupedBarGraph","StackedBarGraph"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BarGraph.cjs","sources":["../src/Components/Graphs/BarGraph/GroupedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/GroupedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/SimpleBarGraph/index.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/Graph.tsx","../src/Components/Graphs/BarGraph/StackedBarGraph/index.tsx","../src/Components/Graphs/BarGraph/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\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 { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n width: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n minValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\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 barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n padZeros: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n suffix,\r\n prefix,\r\n showValues,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphHeight, maxBarThickness * barOrder.length) : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, y.bandwidth()])\r\n .paddingInner(0.1);\r\n const xTicks = x.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {!checkIfNullOrUndefined(el) ? (\r\n <motion.rect\r\n y={subBarScale(`${j}`)}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: !checkIfNullOrUndefined(el)\r\n ? (el as number) >= 0\r\n ? x(el as number) - x(0)\r\n : x(0) - x(el as number)\r\n : 0,\r\n x: (el as number) >= 0 ? x(0) : x(el as number),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={subBarScale.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\r\n style={{\r\n textAnchor: el ? (el < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dx={el ? (el < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: { x: x(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n x: x(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n el,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\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={0}\r\n x={0 - margin.left}\r\n width={x(minValue < 0 ? 0 : minValue) + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n hideAxisLine={hideAxisLine}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n maxBarThickness ? Math.min(graphWidth, maxBarThickness * barOrder.length) : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const subBarScale = scaleBand()\r\n .domain(data[0].size.map((_d, i) => `${i}`))\r\n .range([0, x.bandwidth()])\r\n .paddingInner(0.1);\r\n const yTicks = y.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 <Axis\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )\r\n : undefined\r\n }\r\n hideAxisLine={hideAxisLine}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={subBarScale(`${j}`)}\r\n width={subBarScale.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n y: y(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n height: !checkIfNullOrUndefined(el)\r\n ? Math.abs(y(el as number) - y(0))\r\n : 0,\r\n y: !checkIfNullOrUndefined(el)\r\n ? (el as number) > 0\r\n ? y(el as number)\r\n : y(0)\r\n : y(0),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(subBarScale(`${j}`) as number) + subBarScale.bandwidth() / 2}\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={el ? (el >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: { y: y(0), opacity: 0, fill: valueColor || barColors[j] },\r\n whileInView: {\r\n y: y(el || 0),\r\n opacity: 1,\r\n fill: valueColor || barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n el,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\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 ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport orderBy from 'lodash.orderby';\r\nimport sum from 'lodash.sum';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels?: boolean;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n showColorScale?: boolean;\r\n minHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n minValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n labelOrder?: string[];\r\n language?: Languages;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n ariaLabel?: string;\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 barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n locale?: string;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function GroupedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n suffix = '',\r\n prefix = '',\r\n showValues = true,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortParameter,\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n locale = 'en',\r\n padZeros = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\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 {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n )\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n )\r\n : ensureCompleteDataForStackedBarChart(\r\n data,\r\n timeline.dateFormat || 'yyyy',\r\n ).filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n showValues={showValues}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data.map(d =>\r\n Math.max(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data.map(d =>\r\n Math.min(...(d.size.filter(l => !checkIfNullOrUndefined(l)) as number[])),\r\n ),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n styles={styles}\r\n classNames={classNames}\r\n colorDomain={colorDomain}\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 locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n BarGraphDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\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 { Colors } from '@/Components/ColorPalette';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n barColor: string[];\r\n colorDomain: string[];\r\n suffix: string;\r\n prefix: string;\r\n barPadding: number;\r\n showValues: boolean;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n showLabels: boolean;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n maxValue: number;\r\n minValue: number;\r\n highlightedDataPoints?: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n labelOrder?: string[];\r\n rtl: boolean;\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n trackColor?: string;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n padZeros: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showValues,\r\n showTicks,\r\n truncateBy,\r\n width,\r\n height,\r\n colorDomain,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n highlightedDataPoints,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n rtl,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n // 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: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\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 = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([minValue, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n 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 {trackColor && (\r\n <motion.rect\r\n height={y.bandwidth()}\r\n variants={{\r\n initial: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n width: graphWidth,\r\n x: 0,\r\n y: y(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n width: d.size >= 0 ? x(d.size) - x(0) : x(0) - x(d.size),\r\n x: d.size >= 0 ? x(0) : x(d.size),\r\n y: y(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n height={y.bandwidth()}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <YAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(d.id) || 0}\r\n x={(d.size || 0) < 0 ? x(0) : 0 - margin.left}\r\n width={(d.size || 0) < 0 ? width - x(0) : x(0) + margin.left}\r\n height={y.bandwidth()}\r\n alignment={d.size ? (d.size < 0 ? 'left' : 'right') : 'right'}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: d.size ? (d.size < 0 ? 'end' : 'start') : 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? ' fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dx={d.size ? (d.size < 0 ? -5 : 5) : 5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: d.size ? x(d.size) : x(0),\r\n opacity: 1,\r\n y: (y(`${d.id}`) as number) + y.bandwidth() / 2,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n d.size,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(minValue < 0 ? 0 : minValue)}\r\n x2={x(minValue < 0 ? 0 : minValue)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n suffix,\r\n prefix,\r\n barPadding,\r\n showLabels,\r\n showValues,\r\n showTicks,\r\n colorDomain,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n color: null,\r\n size: null,\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([minValue, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(minValue < 0 ? 0 : minValue)}\r\n y2={y(minValue < 0 ? 0 : minValue)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(\r\n minValue < 0 ? 0 : minValue,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n dx: 0,\r\n dy: maxValue < 0 ? '1em' : -5,\r\n y: y(minValue < 0 ? 0 : minValue),\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, _i) =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? !highlightedDataPoints || highlightedDataPoints.indexOf(d.id) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n },\r\n whileInView: {\r\n opacity: selectedColor\r\n ? d.color\r\n ? barColor[colorDomain.indexOf(d.color)] === selectedColor\r\n ? !highlightedDataPoints || highlightedDataPoints.indexOf(d.id) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && 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 {trackColor && (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n whileInView: {\r\n height: graphHeight,\r\n y: 0,\r\n x: x(`${d.id}`),\r\n fill: trackColor,\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n />\r\n )}\r\n {d.size ? (\r\n <motion.rect\r\n width={x.bandwidth()}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n x: x(`${d.id}`),\r\n y: y(0),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n height: d.size ? Math.abs(y(d.size) - y(0)) : 0,\r\n y: d.size ? (d.size > 0 ? y(d.size) : y(0)) : y(0),\r\n x: x(`${d.id}`),\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={(d.size || 0) < 0 ? 0 : y(0) + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={(d.size || 0) < 0 ? y(0) - 5 : margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment={(d.size || 0) < 0 ? 'bottom' : 'top'}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-sm',\r\n !valueColor && barColor.length > 1\r\n ? 'fill-primary-gray-600 dark:fill-primary-gray-300'\r\n : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n dy={d.size ? (d.size >= 0 ? '-5px' : '1em') : '-5px'}\r\n variants={{\r\n initial: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(0),\r\n opacity: 0,\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n },\r\n whileInView: {\r\n x: (x(`${d.id}`) as number) + x.bandwidth() / 2,\r\n y: y(d.size || 0),\r\n fill: valueColor\r\n ? valueColor\r\n : data.filter(el => el.color).length === 0\r\n ? barColor[0]\r\n : !d.color\r\n ? Colors.gray\r\n : barColor[colorDomain.indexOf(d.color)],\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n d.size,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport {\r\n BarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForBarChart } from '@/Utils/ensureCompleteData';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: BarGraphDataType[];\r\n colors?: string | string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n minHeight?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showValues?: boolean;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain?: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n showLabels?: boolean;\r\n showColorScale?: boolean;\r\n maxValue?: number;\r\n minValue?: number;\r\n trackColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n highlightedDataPoints?: (string | number)[];\r\n dimmedOpacity?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n sortData?: 'asc' | 'desc';\r\n language?: Languages;\r\n showNAColor?: boolean;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\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 barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n locale?: string;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function SimpleBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n barPadding = 0.25,\r\n showValues = true,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n highlightedDataPoints,\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale = true,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n sortData,\r\n labelOrder,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n orientation = 'vertical',\r\n trackColor,\r\n hideAxisLine = false,\r\n locale = 'en',\r\n padZeros = false,\r\n } = props;\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\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 {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center pb-4' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as (string | number)[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortData\r\n ? orderBy(\r\n ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d)),\r\n [\r\n d =>\r\n d.size === undefined\r\n ? sortData === 'asc'\r\n ? (orientation === 'horizontal' ? 1 : -1) * Infinity\r\n : (orientation === 'horizontal' ? -1 : 1) * Infinity\r\n : d.size,\r\n ],\r\n [sortData],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !checkIfNullOrUndefined(d.size) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColor={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n selectedColor={selectedColor}\r\n trackColor={trackColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n barPadding={barPadding}\r\n showValues={showValues}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) < 0\r\n ? 0\r\n : Math.max(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n minValue={\r\n !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n ) >= 0\r\n ? 0\r\n : Math.min(\r\n ...data\r\n .filter(d => !checkIfNullOrUndefined(d.size))\r\n .map(d => d.size as number),\r\n )\r\n }\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n labelOrder={labelOrder}\r\n rtl={language === 'he' || language === 'ar'}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand } from 'd3-scale';\r\nimport sum from 'lodash.sum';\r\nimport { useMemo, useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n GroupedBarGraphDataType,\r\n ReferenceDataType,\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 { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineX, RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n barColors: string[];\r\n barPadding: number;\r\n showTicks: boolean;\r\n leftMargin?: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin?: number;\r\n topMargin?: number;\r\n showLabels: boolean;\r\n bottomMargin?: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n maxValue: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n selectedColor?: string;\r\n rtl: boolean;\r\n labelOrder?: string[];\r\n maxBarThickness?: number;\r\n minBarThickness?: number;\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 barAxisTitle?: string;\r\n noOfTicks: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n colorDomain: string[];\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n hideAxisLine: boolean;\r\n locale: string;\r\n padZeros: boolean;\r\n}\r\n\r\nexport function HorizontalGraph(props: Props) {\r\n const {\r\n data,\r\n barColors,\r\n barPadding,\r\n showTicks,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n truncateBy,\r\n width,\r\n height,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showLabels,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n rtl,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: barAxisTitle ? topMargin + 25 : topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const x = scaleLinear().domain([0, maxValue]).range([0, graphWidth]).nice();\r\n const y = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphHeight, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphHeight, maxBarThickness * barOrder.length)\r\n : graphHeight,\r\n ])\r\n .paddingInner(barPadding);\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={graphWidth / 2}\r\n y={0 - margin.top + 15}\r\n style={styles?.xAxis?.title}\r\n className={classNames?.xAxis?.title}\r\n text={barAxisTitle}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(y(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: 0, y: y(`${d.id}`) },\r\n whileInView: {\r\n x: 0,\r\n y: y(`${d.id}`),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n {el ? (\r\n <motion.rect\r\n key={j}\r\n y={0}\r\n style={{ fill: barColors[j] }}\r\n height={y.bandwidth()}\r\n exit={{\r\n width: 0,\r\n x: x(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n width: 0,\r\n x: x(0),\r\n fill: barColors[j],\r\n },\r\n whileInView: {\r\n width: x(el || 0),\r\n x: x(\r\n j === 0 ? 0 : sum(d.size.filter((element, k) => k < j && element)),\r\n ),\r\n fill: barColors[j],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n y={y.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n dy='0.33em'\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n x:\r\n x(\r\n j === 0\r\n ? 0\r\n : sum(d.size.filter((element, k) => k < j && element)),\r\n ) +\r\n x(el || 0) / 2,\r\n opacity:\r\n el &&\r\n x(el) /\r\n numberFormattingFunction(\r\n el,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n ).length >\r\n 12\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n el,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <YAxesLabels\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={0}\r\n x={0 - margin.left}\r\n width={0 + margin.left}\r\n height={y.bandwidth()}\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n className={cn(\r\n 'graph-value graph-value-total text-sm',\r\n !valueColor ? ' fill-primary-gray-700 dark:fill-primary-gray-300' : '',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n textAnchor: 'start',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n y={y.bandwidth() / 2}\r\n dx={5}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n x: x(0),\r\n opacity: 0,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n },\r\n whileInView: {\r\n x: x(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor ? { fill: valueColor } : {}),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n <Axis\r\n hideAxisLine={hideAxisLine}\r\n x1={x(0)}\r\n x2={x(0)}\r\n y1={-2.5}\r\n y2={graphHeight + margin.bottom}\r\n classNames={{ axis: classNames?.yAxis?.axis }}\r\n styles={{ axis: styles?.yAxis?.axis }}\r\n />\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function VerticalGraph(props: Props) {\r\n const {\r\n data,\r\n leftMargin = 20,\r\n rightMargin = 20,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n width,\r\n height,\r\n barColors,\r\n barPadding,\r\n showLabels,\r\n showTicks,\r\n truncateBy,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n refValues,\r\n maxValue,\r\n onSeriesMouseClick,\r\n selectedColor,\r\n labelOrder,\r\n maxBarThickness,\r\n minBarThickness,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n valueColor,\r\n noOfTicks,\r\n styles,\r\n classNames,\r\n animate,\r\n colorDomain,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n hideAxisLine,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: barAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = useMemo(() => {\r\n const idSet = new Set<string>();\r\n\r\n const dataWithIdWithoutMissingIds = data.map((d, i) => {\r\n const id = labelOrder ? `${d.label}` : `${i}`;\r\n idSet.add(id);\r\n return { ...d, id };\r\n });\r\n\r\n const missingIds = labelOrder ? labelOrder.filter(id => !idSet.has(id)) : [];\r\n\r\n return [\r\n ...dataWithIdWithoutMissingIds,\r\n ...missingIds.map(id => ({\r\n id,\r\n label: id,\r\n size: Array(data[0].size.length).fill(null),\r\n })),\r\n ];\r\n }, [data, labelOrder]);\r\n\r\n const barOrder = useMemo(() => {\r\n return labelOrder ?? dataWithId.map(d => `${d.id}`);\r\n }, [labelOrder, dataWithId]);\r\n\r\n const y = scaleLinear().domain([0, maxValue]).range([graphHeight, 0]).nice();\r\n\r\n const x = scaleBand()\r\n .domain(barOrder)\r\n .range([\r\n 0,\r\n minBarThickness\r\n ? Math.max(graphWidth, minBarThickness * barOrder.length)\r\n : maxBarThickness\r\n ? Math.min(graphWidth, maxBarThickness * barOrder.length)\r\n : graphWidth,\r\n ])\r\n .paddingInner(barPadding);\r\n const yTicks = y.ticks(noOfTicks);\r\n 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 <Axis\r\n hideAxisLine={hideAxisLine}\r\n y1={y(0)}\r\n y2={y(0)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={\r\n showTicks\r\n ? numberFormattingFunction(0, naLabel, precision, prefix, suffix, locale, padZeros)\r\n : undefined\r\n }\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(0),\r\n dx: 0,\r\n dy: -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{ axis: styles?.xAxis?.axis, label: styles?.yAxis?.labels }}\r\n />\r\n {showTicks ? (\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={barAxisTitle}\r\n rotate90\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map(d =>\r\n !checkIfNullOrUndefined(x(d.id)) ? (\r\n <motion.g\r\n className='undp-viz-low-opacity undp-viz-g-with-hover'\r\n key={d.label}\r\n variants={{\r\n initial: { x: x(`${d.id}`), y: 0 },\r\n whileInView: {\r\n x: x(`${d.id}`),\r\n y: 0,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n transition={{ duration: animate.duration }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {d.size.map((el, j) => (\r\n <motion.g\r\n key={`${d.label}-${colorDomain[j] || j}`}\r\n opacity={selectedColor ? (barColors[j] === selectedColor ? 1 : 0.3) : 1}\r\n onMouseEnter={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.({ ...d, sizeIndex: j });\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData({ ...d, sizeIndex: j });\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, { ...d, sizeIndex: j }) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData({ ...d, sizeIndex: j });\r\n if (onSeriesMouseClick) onSeriesMouseClick({ ...d, sizeIndex: j });\r\n }\r\n }\r\n }}\r\n >\r\n <motion.rect\r\n x={0}\r\n width={x.bandwidth()}\r\n variants={{\r\n initial: {\r\n height: 0,\r\n fill: barColors[j],\r\n y: y(0),\r\n },\r\n whileInView: {\r\n height: Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ),\r\n y: y(sum(d.size.filter((element, k) => k <= j && element))),\r\n fill: barColors[j],\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 height: 0,\r\n y: y(0),\r\n transition: { duration: animate.duration },\r\n }}\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={x.bandwidth() / 2}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='0.33em'\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n },\r\n whileInView: {\r\n y:\r\n y(sum(d.size.filter((element, k) => k <= j && element))) +\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) /\r\n 2,\r\n opacity:\r\n el &&\r\n Math.abs(\r\n y(sum(d.size.filter((element, k) => k <= j && element))) -\r\n y(sum(d.size.filter((element, k) => k < j && element))),\r\n ) > 20\r\n ? 1\r\n : 0,\r\n fill: getTextColorBasedOnBgColor(barColors[j]),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n {numberFormattingFunction(\r\n el,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={y(0) + 5}\r\n x={0}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n {showValues ? (\r\n <motion.text\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n x={x.bandwidth() / 2}\r\n dy={-10}\r\n className={cn(\r\n 'graph-value graph-value-total',\r\n !valueColor\r\n ? 'fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n : 'text-sm',\r\n classNames?.graphObjectValues,\r\n )}\r\n variants={{\r\n initial: {\r\n y: y(0),\r\n opacity: 0,\r\n ...(valueColor && { fill: valueColor }),\r\n },\r\n whileInView: {\r\n y: y(sum(d.size.map(el => el || 0))),\r\n opacity: 1,\r\n ...(valueColor && { fill: valueColor }),\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n sum(d.size.filter(element => element)),\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ) : null,\r\n )}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useMemo } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { SliderUI } from '@undp/design-system-react/SliderUI';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { HorizontalGraph, VerticalGraph } from './Graph';\r\n\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport {\r\n GroupedBarGraphDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { Pause, Play } from '@/Components/Icons';\r\nimport { getSliderMarks } from '@/Utils/getSliderMarks';\r\nimport { ensureCompleteDataForStackedBarChart } from '@/Utils/ensureCompleteData';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n data: GroupedBarGraphDataType[];\r\n colors?: string[];\r\n labelOrder?: string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n barPadding?: number;\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n truncateBy?: number;\r\n colorDomain: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n showValues?: boolean;\r\n showLabels?: boolean;\r\n relativeHeight?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n maxValue?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n language?: Languages;\r\n minHeight?: number;\r\n theme?: 'light' | 'dark';\r\n maxBarThickness?: number;\r\n sortParameter?: number | 'total';\r\n sortData?: 'asc' | 'desc';\r\n maxNumberOfBars?: number;\r\n minBarThickness?: number;\r\n ariaLabel?: string;\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 barAxisTitle?: string;\r\n noOfTicks?: number;\r\n valueColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n filterNA?: boolean;\r\n animate?: boolean | AnimateDataType;\r\n precision?: number;\r\n locale?: string;\r\n showColorScale?: boolean;\r\n customLayers?: CustomLayerDataType[];\r\n timeline?: TimelineDataType;\r\n naLabel?: string;\r\n orientation?: 'horizontal' | 'vertical';\r\n hideAxisLine?: boolean;\r\n padZeros?: boolean;\r\n}\r\n\r\nexport function StackedBarGraphEl(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n sources,\r\n graphDescription,\r\n barPadding = 0.25,\r\n showTicks = true,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showLabels = true,\r\n relativeHeight,\r\n showValues = true,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n labelOrder,\r\n minHeight = 0,\r\n theme = 'light',\r\n maxBarThickness,\r\n sortParameter,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n showColorScale = true,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks = 5,\r\n valueColor,\r\n styles,\r\n classNames,\r\n filterNA = true,\r\n animate = false,\r\n precision = 2,\r\n locale = 'en',\r\n customLayers = [],\r\n timeline = { enabled: false, autoplay: false, showOnlyActiveDate: true },\r\n naLabel = 'NA',\r\n sortData,\r\n orientation = 'vertical',\r\n hideAxisLine = false,\r\n padZeros = false,\r\n } = props;\r\n\r\n const Comp = orientation === 'horizontal' ? HorizontalGraph : VerticalGraph;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [play, setPlay] = useState(timeline.autoplay);\r\n const uniqDatesSorted = useMemo(() => {\r\n const dates = [\r\n ...new Set(\r\n data\r\n .filter(d => d.date)\r\n .map(d => parse(`${d.date}`, timeline.dateFormat || 'yyyy', new Date()).getTime()),\r\n ),\r\n ];\r\n dates.sort((a, b) => a - b);\r\n return dates;\r\n }, [data, timeline.dateFormat]);\r\n const [index, setIndex] = useState(timeline.autoplay ? 0 : uniqDatesSorted.length - 1);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(\r\n () => {\r\n setIndex(i => (i < uniqDatesSorted.length - 1 ? i + 1 : 0));\r\n },\r\n (timeline.speed || 2) * 1000,\r\n );\r\n if (!play) clearInterval(interval);\r\n return () => clearInterval(interval);\r\n }, [uniqDatesSorted, play, timeline.speed]);\r\n\r\n const markObj = getSliderMarks(\r\n uniqDatesSorted,\r\n index,\r\n timeline.showOnlyActiveDate,\r\n timeline.dateFormat || 'yyyy',\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 {timeline.enabled && uniqDatesSorted.length > 0 && markObj ? (\r\n <div className='flex gap-6 items-center' dir='ltr'>\r\n <button\r\n type='button'\r\n onClick={() => {\r\n setPlay(!play);\r\n }}\r\n className='p-0 border-0 cursor-pointer bg-transparent'\r\n aria-label={play ? 'Click to pause animation' : 'Click to play animation'}\r\n >\r\n {play ? <Pause /> : <Play />}\r\n </button>\r\n <SliderUI\r\n min={uniqDatesSorted[0]}\r\n max={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n marks={markObj}\r\n step={null}\r\n defaultValue={uniqDatesSorted[uniqDatesSorted.length - 1]}\r\n value={uniqDatesSorted[index]}\r\n onChangeComplete={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n onChange={nextValue => {\r\n setIndex(uniqDatesSorted.indexOf(nextValue as number));\r\n }}\r\n aria-label='Time slider. Use arrow keys to adjust selected time period.'\r\n />\r\n </div>\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {showColorScale && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorDomain={colorDomain}\r\n colors={colors}\r\n colorLegendTitle={colorLegendTitle}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Comp\r\n hideAxisLine={hideAxisLine}\r\n data={\r\n sortParameter !== undefined\r\n ? sortParameter === 'total'\r\n ? orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d => sum(d.size.filter(el => !checkIfNullOrUndefined(el))),\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : orderBy(\r\n ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(\r\n new Date(uniqDatesSorted[index]),\r\n timeline.dateFormat || 'yyyy',\r\n )\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d)),\r\n d =>\r\n checkIfNullOrUndefined(d.size[sortParameter])\r\n ? -Infinity\r\n : d.size[sortParameter],\r\n [sortData || 'asc'],\r\n ).filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n : ensureCompleteDataForStackedBarChart(data, timeline.dateFormat || 'yyyy')\r\n .filter(d =>\r\n timeline.enabled\r\n ? `${d.date}` ===\r\n format(new Date(uniqDatesSorted[index]), timeline.dateFormat || 'yyyy')\r\n : d,\r\n )\r\n .filter(d => (filterNA ? !d.size.every(item => item == null) : d))\r\n .filter((_d, i) => (maxNumberOfBars ? i < maxNumberOfBars : true))\r\n }\r\n barColors={colors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n refValues={refValues}\r\n maxValue={\r\n !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(\r\n ...data.map(d => sum(d.size.filter(l => !checkIfNullOrUndefined(l))) || 0),\r\n )\r\n }\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n selectedColor={selectedColor}\r\n rtl={language === 'he' || language === 'ar'}\r\n labelOrder={labelOrder}\r\n maxBarThickness={maxBarThickness}\r\n minBarThickness={minBarThickness}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n styles={styles}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n colorDomain={colorDomain}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n","import { GroupedBarGraphEl } from './GroupedBarGraph';\r\nimport { SimpleBarGraphEl } from './SimpleBarGraph';\r\nimport { StackedBarGraphEl } from './StackedBarGraph';\r\n\r\nimport {\r\n ReferenceDataType,\r\n BarGraphDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n GroupedBarGraphDataType,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n TimelineDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for bars */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Track color (i.e. the color of the bars background) of the bar chart */\r\n trackColor?: string;\r\n /** Toggles if data point which are undefined or has value null are filtered out. */\r\n filterNA?: boolean;\r\n /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\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 /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\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 SimpleBarGraph(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n sortData,\r\n labelOrder,\r\n showNAColor,\r\n minHeight,\r\n maxBarThickness,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n dimmedOpacity,\r\n customLayers,\r\n timeline,\r\n naLabel,\r\n trackColor,\r\n hideAxisLine = false,\r\n numberDisplayOptions,\r\n } = props;\r\n return (\r\n <SimpleBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={numberDisplayOptions?.suffix}\r\n prefix={numberDisplayOptions?.prefix}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n showColorScale={showColorScale}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n sortData={sortData}\r\n labelOrder={labelOrder}\r\n showNAColor={showNAColor}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={numberDisplayOptions?.precision}\r\n customLayers={customLayers}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n trackColor={trackColor}\r\n hideAxisLine={hideAxisLine}\r\n locale={numberDisplayOptions?.locale}\r\n padZeros={numberDisplayOptions?.padZeros}\r\n />\r\n );\r\n}\r\n\r\ninterface GroupedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n\r\n // Values and Tick\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\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 GroupedBarGraph(props: GroupedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n truncateBy,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n showValues,\r\n padding,\r\n backgroundColor,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n minValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n labelOrder,\r\n minHeight,\r\n theme,\r\n sortParameter,\r\n sortData,\r\n maxBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n numberDisplayOptions,\r\n } = props;\r\n\r\n return (\r\n <GroupedBarGraphEl\r\n orientation={orientation}\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n truncateBy={truncateBy}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n suffix={numberDisplayOptions?.suffix}\r\n prefix={numberDisplayOptions?.prefix}\r\n showValues={showValues}\r\n padding={padding}\r\n backgroundColor={backgroundColor}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n theme={theme}\r\n maxBarThickness={maxBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={numberDisplayOptions?.precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n hideAxisLine={hideAxisLine}\r\n locale={numberDisplayOptions?.locale}\r\n padZeros={numberDisplayOptions?.padZeros}\r\n />\r\n );\r\n}\r\n\r\ninterface StackedBarChartProps {\r\n // Data\r\n /** Array of data objects */\r\n data: GroupedBarGraphDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for different bars in the group */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color of value labels */\r\n valueColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n /** Maximum thickness of bars */\r\n maxBarThickness?: number;\r\n /** Minimum thickness of bars */\r\n minBarThickness?: number;\r\n /** Maximum number of bars shown in the graph */\r\n maxNumberOfBars?: number;\r\n\r\n // Values and Ticks\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Custom order for labels */\r\n labelOrder?: string[];\r\n /** Toggle visibility of axis ticks */\r\n showTicks?: boolean;\r\n /** Toggle visibility of axis line for the main axis */\r\n hideAxisLine?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\r\n /** Parameter to sort the data. If a number is provided, it refers to the index of the size array to determine which value to sort by. If set to total, it sorts by the sum of all the values. */\r\n sortParameter?: number | 'total';\r\n /** Sorting order for data. This is overwritten by labelOrder prop. */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if data points which have all the values as undefined or null are filtered out. */\r\n filterNA?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Configures playback and slider controls for animating the chart over time. The data must have a key date for it to work properly. */\r\n timeline?: TimelineDataType;\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 StackedBarGraph(props: StackedBarChartProps) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n barPadding,\r\n showTicks,\r\n leftMargin,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n truncateBy,\r\n showLabels,\r\n showValues,\r\n backgroundColor,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n tooltip,\r\n onSeriesMouseOver,\r\n relativeHeight,\r\n refValues,\r\n graphID,\r\n maxValue,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n theme,\r\n labelOrder,\r\n minHeight,\r\n maxBarThickness,\r\n sortParameter,\r\n sortData,\r\n maxNumberOfBars,\r\n minBarThickness,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n barAxisTitle,\r\n noOfTicks,\r\n valueColor,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n filterNA,\r\n animate,\r\n customLayers,\r\n showColorScale,\r\n timeline,\r\n naLabel,\r\n hideAxisLine = false,\r\n numberDisplayOptions,\r\n } = props;\r\n\r\n return (\r\n <StackedBarGraphEl\r\n data={data}\r\n graphTitle={graphTitle}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n barPadding={barPadding}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n showLabels={showLabels}\r\n showValues={showValues}\r\n backgroundColor={backgroundColor}\r\n suffix={numberDisplayOptions?.suffix}\r\n prefix={numberDisplayOptions?.prefix}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n relativeHeight={relativeHeight}\r\n refValues={refValues}\r\n graphID={graphID}\r\n maxValue={maxValue}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n theme={theme}\r\n labelOrder={labelOrder}\r\n minHeight={minHeight}\r\n maxBarThickness={maxBarThickness}\r\n sortParameter={sortParameter}\r\n sortData={sortData}\r\n maxNumberOfBars={maxNumberOfBars}\r\n minBarThickness={minBarThickness}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n barAxisTitle={barAxisTitle}\r\n noOfTicks={noOfTicks}\r\n valueColor={valueColor}\r\n classNames={classNames}\r\n filterNA={filterNA}\r\n animate={animate}\r\n precision={numberDisplayOptions?.precision}\r\n customLayers={customLayers}\r\n showColorScale={showColorScale}\r\n timeline={timeline}\r\n naLabel={naLabel}\r\n orientation={orientation}\r\n hideAxisLine={hideAxisLine}\r\n locale={numberDisplayOptions?.locale}\r\n padZeros={numberDisplayOptions?.padZeros}\r\n />\r\n );\r\n}\r\n"],"names":["HorizontalGraph","props","$","_c","data","leftMargin","t0","rightMargin","t1","topMargin","t2","bottomMargin","t3","barColors","barPadding","showTicks","truncateBy","width","height","suffix","prefix","showValues","showLabels","tooltip","onSeriesMouseOver","refValues","maxValue","minValue","onSeriesMouseClick","selectedColor","rtl","labelOrder","maxBarThickness","resetSelectionOnDoubleClick","detailsOnClick","barAxisTitle","valueColor","noOfTicks","styles","classNames","animate","colorDomain","precision","customLayers","naLabel","hideAxisLine","locale","padZeros","undefined","svgRef","useRef","t4","amount","once","isInView","useInView","t5","t6","top","bottom","left","right","margin","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","t7","idSet","Set","dataWithIdWithoutMissingIds","map","d","i","id","label","add","missingIds","filter","id_0","has","t8","size","length","id_1","Array","fill","dataWithId","_temp","barOrder","T0","T1","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t9","graphObjectValues","xAxis","gridLines","labels","title","yAxis","axis","x","scaleLinear","domain","range","nice","y","scaleBand","Math","min","paddingInner","subBarScale","_temp2","bandwidth","xTicks","ticks","motion","svg","jsx","XTicksAndGridLines","_temp3","_temp4","d_3","t21","t22","t23","t24","AxisTitle","_temp5","_temp6","AnimatePresence","d_6","checkIfNullOrUndefined","jsxs","initial","whileInView","transition","duration","opacity","el","j","event","sizeIndex","clientY","clientX","event_0","isEqual","textAnchor","cn","numberFormattingFunction","YAxesLabels","substring","t25","t26","t27","t28","Axis","el_0","i_1","RefLineX","text","color","value","_temp7","_temp8","Tooltip","modal","DetailsModal","Fragment","d_8","layer","d_7","position","d_5","d_4","d_2","d_1","_d","i_0","d_0","VerticalGraph","_temp9","_temp0","yTicks","dx","dy","YTicksAndGridLines","_temp1","_temp10","t29","t30","t31","_temp11","_temp12","abs","XAxesLabels","RefLineY","_temp13","_temp14","GroupedBarGraphEl","graphTitle","colors","sources","graphDescription","footNote","colorLegendTitle","showColorScale","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","minHeight","theme","ariaLabel","filterNA","timeline","sortParameter","sortData","orientation","Colors","light","categoricalColors","enabled","autoplay","showOnlyActiveDate","Comp","svgWidth","setSvgWidth","svgHeight","setSvgHeight","play","setPlay","dates","dateFormat","parse","date","Date","getTime","sort","uniqDatesSorted","index","setIndex","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","t32","speed","interval","setInterval","clearInterval","t33","t34","getSliderMarks","markObj","t35","graphContainer","t36","t37","description","GraphHeader","t38","Pause","Play","SliderUI","nextValue","indexOf","nextValue_0","t39","colorLegend","ColorLegendWithMouseOver","t40","EmptyState","t41","orderBy","ensureCompleteDataForStackedBarChart","format","every","d_9","d_10","d_11","d_12","max","_temp16","_temp18","t42","GraphArea","t43","t44","footnote","source","GraphFooter","t45","GraphContainer","d_15","_temp17","l_1","l","d_16","_temp15","l_2","d_13","d_14","l_0","item_1","item","item_0","sum","a","b","barColor","highlightedDataPoints","minBarThickness","dimmedOpacity","trackColor","gray","el_3","el_2","el_1","_i","_temp19","_temp20","_temp21","_temp22","SimpleBarGraphEl","showNAColor","maxNumberOfBars","uniqBy","ensureCompleteDataForBarChart","Infinity","_d_0","primaryColors","d_18","d_17","element","k","getTextColorBasedOnBgColor","element_0","k_0","element_1","k_1","element_2","k_2","element_3","k_3","element_4","k_4","element_5","k_5","element_6","k_6","element_7","StackedBarGraphEl","_d_1","i_2","SimpleBarGraph","numberDisplayOptions","GroupedBarGraph","StackedBarGraph"],"mappings":"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"}
|