@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DifferenceLineChart.js","sources":["../src/Components/Graphs/LineCharts/DifferenceLineChart/Graph.tsx","../src/Components/Graphs/LineCharts/DifferenceLineChart/index.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n area,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleLinear, scaleTime } from 'd3-scale';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { bisectCenter } from 'd3-array';\r\nimport { pointer, select } from 'd3-selection';\r\nimport { motion, useInView } from 'motion/react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n AnimateDataType,\r\n AnnotationSettingsDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomHighlightAreaSettingsDataType,\r\n CustomLayerDataType,\r\n DifferenceLineChartDataType,\r\n HighlightAreaSettingsDataType,\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 { getLineEndPoint } from '@/Utils/getLineEndPoint';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { Annotation } from '@/Components/Elements/Annotations';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { HighlightArea } from '@/Components/Elements/HighlightArea';\r\nimport { CustomArea } from '@/Components/Elements/HighlightArea/customArea';\r\n\r\ninterface Props {\r\n data: DifferenceLineChartDataType[];\r\n lineColors: [string, string];\r\n diffAreaColors: [string, string];\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: string;\r\n dateFormat: string;\r\n showValues: boolean;\r\n noOfXTicks: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n highlightAreaSettings: HighlightAreaSettingsDataType[];\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 animate: AnimateDataType;\r\n rtl: boolean;\r\n colorDomain: [string, string];\r\n showColorLegendAtTop?: boolean;\r\n idSuffix: string;\r\n strokeWidth: number;\r\n showDots: boolean;\r\n refValues: ReferenceDataType[];\r\n maxValue?: number;\r\n minValue?: number;\r\n annotations: AnnotationSettingsDataType[];\r\n customHighlightAreaSettings: CustomHighlightAreaSettingsDataType[];\r\n yAxisTitle?: string;\r\n noOfYTicks: number;\r\n minDate?: string | number;\r\n maxDate?: string | number;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n locale: string;\r\n naLabel: string;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y1: number;\r\n y2: number;\r\n date: Date;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n lineColors,\r\n suffix,\r\n prefix,\r\n dateFormat,\r\n showValues,\r\n noOfXTicks,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n highlightAreaSettings,\r\n onSeriesMouseOver,\r\n animate,\r\n rtl,\r\n showColorLegendAtTop,\r\n colorDomain,\r\n diffAreaColors,\r\n idSuffix,\r\n strokeWidth,\r\n showDots,\r\n refValues,\r\n minValue,\r\n maxValue,\r\n annotations,\r\n customHighlightAreaSettings,\r\n yAxisTitle,\r\n noOfYTicks,\r\n minDate,\r\n maxDate,\r\n curveType,\r\n styles,\r\n classNames,\r\n precision,\r\n customLayers,\r\n locale,\r\n naLabel,\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 [hasAnimatedOnce, setHasAnimatedOnce] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isInView && !hasAnimatedOnce) {\r\n const timeout = setTimeout(\r\n () => {\r\n setHasAnimatedOnce(true);\r\n },\r\n (animate.duration + 0.5) * 1000,\r\n );\r\n return () => clearTimeout(timeout);\r\n }\r\n }, [isInView, hasAnimatedOnce, animate.duration]);\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: yAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n const MouseoverRectRef = useRef(null);\r\n const dataFormatted = orderBy(\r\n data.map(d => ({\r\n ...d,\r\n date: parse(`${d.date}`, dateFormat, new Date()),\r\n })),\r\n ['date'],\r\n ['asc'],\r\n );\r\n const highlightAreaSettingsFormatted = highlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: [\r\n d.coordinates[0] === null ? null : parse(`${d.coordinates[0]}`, dateFormat, new Date()),\r\n d.coordinates[1] === null ? null : parse(`${d.coordinates[1]}`, dateFormat, new Date()),\r\n ],\r\n }));\r\n const customHighlightAreaSettingsFormatted = customHighlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: d.coordinates.map((el, j) =>\r\n j % 2 === 0 ? parse(`${el}`, dateFormat, new Date()) : (el as number),\r\n ),\r\n }));\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const minYear = minDate ? parse(`${minDate}`, dateFormat, new Date()) : dataFormatted[0].date;\r\n const maxYear = maxDate\r\n ? parse(`${maxDate}`, dateFormat, new Date())\r\n : dataFormatted[dataFormatted.length - 1].date;\r\n const minParam1 =\r\n Math.min(...dataFormatted.map(d => d.y1)) !== Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y1)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y1))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataFormatted.map(d => d.y2)) !== Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y2)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y2))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataFormatted.map(d => d.y1)) !== Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y1))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataFormatted.map(d => d.y2)) !== Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y2))\r\n : 0;\r\n\r\n const minParam = checkIfNullOrUndefined(minValue)\r\n ? minParam1 < minParam2\r\n ? minParam1\r\n : minParam2\r\n : (minValue as number);\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n const x = scaleTime().domain([minYear, maxYear]).range([0, graphWidth]);\r\n\r\n const y = scaleLinear()\r\n .domain([\r\n checkIfNullOrUndefined(minValue) ? minParam : (minValue as number),\r\n checkIfNullOrUndefined(maxValue) ? (maxParam > 0 ? maxParam : 0) : (maxValue as number),\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape1 = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y1))\r\n .curve(curve);\r\n\r\n const lineShape2 = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y2))\r\n .curve(curve);\r\n\r\n const mainGraphArea = area<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y1(d => y(d.y1))\r\n .y0(d => y(d.y2))\r\n .curve(curve);\r\n const mainGraphArea1 = area<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y1(d => y(d.y1))\r\n .y0(0)\r\n .curve(curve);\r\n const mainGraphArea2 = area<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y1(d => y(d.y2))\r\n .y0(0)\r\n .curve(curve);\r\n const yTicks = y.ticks(noOfYTicks);\r\n const xTicks = x.ticks(noOfXTicks);\r\n useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mousemove = (event: any) => {\r\n const selectedData =\r\n dataFormatted[\r\n bisectCenter(\r\n dataFormatted.map(d => d.date),\r\n x.invert(pointer(event)[0]),\r\n 0,\r\n )\r\n ];\r\n setMouseOverData(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n onSeriesMouseOver?.(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n };\r\n const mouseout = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n };\r\n select(MouseoverRectRef.current).on('mousemove', mousemove).on('mouseout', mouseout);\r\n }, [x, dataFormatted, onSeriesMouseOver]);\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 <clipPath id={`above${idSuffix}`}>\r\n <path\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n d={mainGraphArea2(dataFormatted as any) as string}\r\n style={{ fill: 'none' }}\r\n />\r\n </clipPath>\r\n <clipPath id={`below${idSuffix}`}>\r\n <path\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n d={mainGraphArea1(dataFormatted as any) as string}\r\n style={{ fill: 'none' }}\r\n />\r\n </clipPath>\r\n <HighlightArea\r\n areaSettings={highlightAreaSettingsFormatted}\r\n width={graphWidth}\r\n height={graphHeight}\r\n scale={x}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <CustomArea\r\n areaSettings={customHighlightAreaSettingsFormatted}\r\n scaleX={x}\r\n scaleY={y}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <g>\r\n <g>\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 <Axis\r\n y1={y(minParam < 0 ? 0 : minParam)}\r\n y2={y(minParam < 0 ? 0 : minParam)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={numberFormattingFunction(\r\n minParam < 0 ? 0 : minParam,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(minParam < 0 ? 0 : minParam),\r\n dx: 0,\r\n dy: maxParam < 0 ? '1rem' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\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={yAxisTitle}\r\n rotate90\r\n />\r\n </g>\r\n </g>\r\n <XTicksAndGridLines\r\n values={xTicks.map(d => format(d, dateFormat))}\r\n x={xTicks.map(d => x(d))}\r\n y1={0}\r\n y2={graphHeight}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: cn('opacity-0', classNames?.xAxis?.gridLines),\r\n labels: cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 xs:max-[360px]:hidden text-[9px] md:text-[10px] lg:text-xs',\r\n classNames?.xAxis?.labels,\r\n ),\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='primary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g>\r\n <motion.path\r\n clipPath={`url(#below${idSuffix})`}\r\n d={mainGraphArea(dataFormatted) || ''}\r\n style={{ fill: diffAreaColors[1] }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 1 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n <motion.path\r\n clipPath={`url(#above${idSuffix})`}\r\n d={mainGraphArea(dataFormatted) || ''}\r\n style={{ fill: diffAreaColors[0] }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </g>\r\n <g>\r\n <motion.path\r\n d={lineShape1(dataFormatted) || ''}\r\n style={{\r\n fill: 'none',\r\n stroke: lineColors[0],\r\n strokeWidth,\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { pathLength: 0, d: lineShape1(dataFormatted) || '', opacity: 1 },\r\n whileInView: {\r\n pathLength: 1,\r\n d: lineShape1(dataFormatted) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n <motion.path\r\n style={{\r\n fill: 'none',\r\n stroke: lineColors[1],\r\n strokeWidth,\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { pathLength: 0, d: lineShape2(dataFormatted) || '', opacity: 1 },\r\n whileInView: {\r\n pathLength: 1,\r\n d: lineShape2(dataFormatted) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showColorLegendAtTop ? null : (\r\n <g>\r\n <motion.text\r\n key={colorDomain[0]}\r\n className='text-xs'\r\n dx={5}\r\n dy={4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y1 as number),\r\n fill: lineColors[0],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y1 as number),\r\n fill: lineColors[0],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {colorDomain[0]}\r\n </motion.text>\r\n <motion.text\r\n key={colorDomain[1]}\r\n className='text-xs'\r\n dx={5}\r\n dy={4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y2 as number),\r\n fill: lineColors[1],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y2 as number),\r\n fill: lineColors[1],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {colorDomain[1]}\r\n </motion.text>\r\n </g>\r\n )}\r\n {mouseOverData ? (\r\n <line\r\n y1={0}\r\n y2={graphHeight}\r\n x1={x(mouseOverData.date)}\r\n x2={x(mouseOverData.date)}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-700 dark:stroke-primary-gray-100',\r\n classNames?.mouseOverLine,\r\n )}\r\n style={styles?.mouseOverLine}\r\n />\r\n ) : null}\r\n {dataFormatted.map((d, i) => (\r\n <motion.g key={i}>\r\n {!checkIfNullOrUndefined(d.y1) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={\r\n graphWidth / dataFormatted.length < 5\r\n ? 0\r\n : graphWidth / dataFormatted.length < 20\r\n ? 2\r\n : 4\r\n }\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, cx: x(d.date), cy: y(d.y1), fill: lineColors[0] },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[0],\r\n transition: { duration: 0.5, delay: animate.duration },\r\n cx: x(d.date),\r\n cy: y(d.y1),\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 dy={d.y2 < d.y1 ? -8 : '1em'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-1 text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, x: x(d.date), y: y(d.y1), fill: lineColors[0] },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[0],\r\n x: x(d.date),\r\n y: y(d.y1),\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(d.y1, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n {!checkIfNullOrUndefined(d.y2) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={\r\n graphWidth / dataFormatted.length < 5\r\n ? 0\r\n : graphWidth / dataFormatted.length < 20\r\n ? 2\r\n : 4\r\n }\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, cx: x(d.date), cy: y(d.y2), fill: lineColors[1] },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[1],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n cx: x(d.date),\r\n cy: y(d.y2),\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 dy={d.y2 > d.y1 ? -8 : '1em'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-2 text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, x: x(d.date), y: y(d.y2), fill: lineColors[1] },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(d.date),\r\n y: y(d.y2),\r\n fill: lineColors[1],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(d.y2, naLabel, precision, prefix, suffix, locale)}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n </g>\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 <g>\r\n {annotations.map((d, i) => {\r\n const endPoints = getLineEndPoint(\r\n {\r\n x: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n },\r\n {\r\n x: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n y: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n },\r\n checkIfNullOrUndefined(d.connectorRadius) ? 3.5 : (d.connectorRadius as number),\r\n );\r\n const connectorSettings = d.showConnector\r\n ? {\r\n y1: endPoints.y,\r\n x1: endPoints.x,\r\n y2: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0)\r\n : 0 + (d.yOffset || 0),\r\n x2: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n cy: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n cx: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n circleRadius: checkIfNullOrUndefined(d.connectorRadius)\r\n ? 3.5\r\n : (d.connectorRadius as number),\r\n strokeWidth: d.showConnector === true ? 2 : Math.min(d.showConnector || 0, 1),\r\n }\r\n : undefined;\r\n const labelSettings = {\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n x: rtl\r\n ? 0\r\n : d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n width: rtl\r\n ? d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)\r\n : graphWidth +\r\n margin.right -\r\n (d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)),\r\n maxWidth: d.maxWidth,\r\n fontWeight: d.fontWeight,\r\n align: d.align,\r\n };\r\n return (\r\n <Annotation\r\n key={i}\r\n color={d.color}\r\n connectorsSettings={connectorSettings}\r\n labelSettings={labelSettings}\r\n text={d.text}\r\n classNames={d.classNames}\r\n styles={d.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n );\r\n })}\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n <rect\r\n ref={MouseoverRectRef}\r\n style={{\r\n fill: 'none',\r\n pointerEvents: 'all',\r\n }}\r\n width={graphWidth}\r\n height={graphHeight}\r\n />\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 </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n AnnotationSettingsDataType,\r\n CustomHighlightAreaSettingsDataType,\r\n DifferenceLineChartDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n HighlightAreaSettingsDataType,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\nimport { getNoOfTicks } from '@/Utils/getNoOfTicks';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: DifferenceLineChartDataType[];\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 the 2 lines */\r\n lineColors?: [string, string];\r\n /** Array of colors to highlight the negative and positive difference between the lines */\r\n diffAreaColors?: [string, string];\r\n /** Toggle the visibility of color legend between the top of the graphs and next to the line */\r\n showColorLegendAtTop?: boolean;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\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 /** Maximum value of the date for the chart */\r\n maxDate?: string | number;\r\n /** Minimum value of the date for the chart */\r\n minDate?: string | number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** No. of ticks on the x-axis */\r\n noOfXTicks?: number;\r\n /** No. of ticks on the y-axis */\r\n noOfYTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Stroke width of the line */\r\n strokeWidth?: number;\r\n /** Toggle the initial animation of the line. If the type is number then it uses the number as the time in seconds for animation. */\r\n animate?: boolean | AnimateDataType;\r\n /** Labels for the lines */\r\n labels: [string, string];\r\n /** Format of the date in the data object. Available formats can be found [here](https://date-fns.org/docs/format) */\r\n dateFormat?: string;\r\n /** Title for the Y-axis */\r\n yAxisTitle?: string;\r\n /** Annotations on the chart */\r\n annotations?: AnnotationSettingsDataType[];\r\n /** Highlighted area(square) on the chart */\r\n highlightAreaSettings?: HighlightAreaSettingsDataType[];\r\n /** Highlighted area(custom shape) on the chart */\r\n customHighlightAreaSettings?: CustomHighlightAreaSettingsDataType[];\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\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 /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: 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 /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_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 DifferenceLineChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n noOfXTicks = 10,\r\n dateFormat = 'yyyy',\r\n showValues = false,\r\n padding,\r\n lineColors = [\r\n Colors.light.categoricalColors.colors[0],\r\n Colors.light.categoricalColors.colors[1],\r\n ],\r\n backgroundColor = false,\r\n leftMargin = 30,\r\n rightMargin = 50,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n tooltip,\r\n highlightAreaSettings = [],\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n animate = false,\r\n language = 'en',\r\n minHeight = 0,\r\n labels,\r\n showColorLegendAtTop = false,\r\n colorLegendTitle,\r\n diffAreaColors = [Colors.alerts.red, Colors.alerts.darkGreen],\r\n strokeWidth = 2,\r\n showDots = true,\r\n refValues = [],\r\n minValue,\r\n maxValue,\r\n annotations = [],\r\n customHighlightAreaSettings = [],\r\n theme = 'light',\r\n ariaLabel,\r\n yAxisTitle,\r\n noOfYTicks = 5,\r\n minDate,\r\n maxDate,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n precision = 2,\r\n customLayers = [],\r\n locale = 'en',\r\n naLabel = 'NA',\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {showColorLegendAtTop && data.length > 0 ? (\r\n <ColorLegend\r\n colorDomain={labels}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={lineColors}\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 <Graph\r\n data={data}\r\n lineColors={lineColors}\r\n colorDomain={labels}\r\n width={svgWidth}\r\n height={svgHeight}\r\n suffix={suffix}\r\n prefix={prefix}\r\n dateFormat={dateFormat}\r\n showValues={showValues}\r\n noOfXTicks={noOfXTicks ?? getNoOfTicks(svgWidth)}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n highlightAreaSettings={highlightAreaSettings}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showColorLegendAtTop={showColorLegendAtTop}\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 rtl={language === 'he' || language === 'ar'}\r\n diffAreaColors={diffAreaColors}\r\n idSuffix={generateRandomString(8)}\r\n strokeWidth={strokeWidth}\r\n showDots={showDots}\r\n refValues={refValues}\r\n minValue={minValue}\r\n maxValue={maxValue}\r\n annotations={annotations}\r\n customHighlightAreaSettings={customHighlightAreaSettings}\r\n yAxisTitle={yAxisTitle}\r\n noOfYTicks={noOfYTicks}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n curveType={curveType}\r\n styles={styles}\r\n classNames={classNames}\r\n precision={precision}\r\n customLayers={customLayers}\r\n locale={locale}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","lineColors","suffix","prefix","dateFormat","showValues","noOfXTicks","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","highlightAreaSettings","onSeriesMouseOver","animate","rtl","showColorLegendAtTop","colorDomain","diffAreaColors","idSuffix","strokeWidth","showDots","refValues","minValue","maxValue","annotations","customHighlightAreaSettings","yAxisTitle","noOfYTicks","minDate","maxDate","curveType","styles","classNames","precision","customLayers","locale","naLabel","svgRef","useRef","t0","amount","once","isInView","useInView","hasAnimatedOnce","setHasAnimatedOnce","useState","t1","t2","duration","timeout","setTimeout","clearTimeout","useEffect","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","undefined","eventX","setEventX","eventY","setEventY","t3","t4","top","bottom","left","right","margin","MouseoverRectRef","t5","d","date","parse","Date","dataFormatted","orderBy","map","t6","t7","d_0","coordinates","highlightAreaSettingsFormatted","t8","d_1","el","j","customHighlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam1","Math","min","_temp","Infinity","_temp2","_temp3","minParam2","_temp4","_temp5","_temp6","maxParam1","max","_temp7","_temp8","maxParam2","_temp9","_temp0","checkIfNullOrUndefined","minParam","maxParam","x","scaleTime","domain","range","t9","t10","y","scaleLinear","nice","lineShape1","line","d_12","d_13","y1","lineShape2","d_14","d_15","y2","mainGraphArea","area","d_16","d_17","y0","d_18","mainGraphArea1","d_19","d_20","mainGraphArea2","d_21","d_22","yTicks","ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp1","invert","pointer","clientY","clientX","mouseout","select","current","on","t11","Symbol","for","fill","t12","t13","jsx","HighlightArea","t14","yAxis","gridLines","t15","labels","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","numberFormattingFunction","t26","t27","t28","t29","dx","dy","t30","xAxis","axis","t31","t32","label","t33","t34","t35","t36","Axis","t37","t38","t39","title","t40","t41","AxisTitle","t42","d_27","format","t43","t44","d_28","t45","t46","t47","t48","t49","cn","t50","t51","t52","t53","filter","_temp12","_temp13","t54","t55","opacity","transition","t56","t57","initial","whileInView","t58","t59","t60","t61","t62","stroke","t63","t64","t65","t66","t67","t68","t69","pathLength","t70","jsxs","motion","delay","t71","mouseOverLine","t72","graphObjectValues","t73","d_31","i","Fragment","cx","cy","textAnchor","el_0","i_0","RefLineY","text","color","value","t74","t75","d_32","i_1","endPoints","getLineEndPoint","xCoordinate","xOffset","yCoordinate","yOffset","connectorRadius","connectorSettings","showConnector","x1","x2","circleRadius","labelSettings","maxWidth","fontWeight","align","Annotation","t76","_temp14","_temp15","t77","pointerEvents","t78","t79","Tooltip","CustomArea","YTicksAndGridLines","_temp10","_temp11","d_26","XTicksAndGridLines","d_34","layer","d_33","position","d_30","d_29","d_25","d_24","d_23","d_10","d_11","d_8","d_9","d_5","d_6","d_7","d_2","d_3","d_4","DifferenceLineChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","minHeight","colorLegendTitle","theme","ariaLabel","Colors","light","categoricalColors","colors","alerts","red","darkGreen","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","colorLegend","ColorLegend","EmptyState","getNoOfTicks","generateRandomString","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DifferenceLineChart.js","sources":["../src/Components/Graphs/LineCharts/DifferenceLineChart/Graph.tsx","../src/Components/Graphs/LineCharts/DifferenceLineChart/index.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n area,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleLinear, scaleTime } from 'd3-scale';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { bisectCenter } from 'd3-array';\r\nimport { pointer, select } from 'd3-selection';\r\nimport { motion, useInView } from 'motion/react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n AnimateDataType,\r\n AnnotationSettingsDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomHighlightAreaSettingsDataType,\r\n CustomLayerDataType,\r\n DifferenceLineChartDataType,\r\n HighlightAreaSettingsDataType,\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 { getLineEndPoint } from '@/Utils/getLineEndPoint';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { Annotation } from '@/Components/Elements/Annotations';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { HighlightArea } from '@/Components/Elements/HighlightArea';\r\nimport { CustomArea } from '@/Components/Elements/HighlightArea/customArea';\r\n\r\ninterface Props {\r\n data: DifferenceLineChartDataType[];\r\n lineColors: [string, string];\r\n diffAreaColors: [string, string];\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: string;\r\n dateFormat: string;\r\n showValues: boolean;\r\n noOfXTicks: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n highlightAreaSettings: HighlightAreaSettingsDataType[];\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 animate: AnimateDataType;\r\n rtl: boolean;\r\n colorDomain: [string, string];\r\n showColorLegendAtTop?: boolean;\r\n idSuffix: string;\r\n strokeWidth: number;\r\n showDots: boolean;\r\n refValues: ReferenceDataType[];\r\n maxValue?: number;\r\n minValue?: number;\r\n annotations: AnnotationSettingsDataType[];\r\n customHighlightAreaSettings: CustomHighlightAreaSettingsDataType[];\r\n yAxisTitle?: string;\r\n noOfYTicks: number;\r\n minDate?: string | number;\r\n maxDate?: string | number;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n locale: string;\r\n naLabel: string;\r\n padZeros: boolean;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y1: number;\r\n y2: number;\r\n date: Date;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n lineColors,\r\n suffix,\r\n prefix,\r\n dateFormat,\r\n showValues,\r\n noOfXTicks,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n highlightAreaSettings,\r\n onSeriesMouseOver,\r\n animate,\r\n rtl,\r\n showColorLegendAtTop,\r\n colorDomain,\r\n diffAreaColors,\r\n idSuffix,\r\n strokeWidth,\r\n showDots,\r\n refValues,\r\n minValue,\r\n maxValue,\r\n annotations,\r\n customHighlightAreaSettings,\r\n yAxisTitle,\r\n noOfYTicks,\r\n minDate,\r\n maxDate,\r\n curveType,\r\n styles,\r\n classNames,\r\n precision,\r\n customLayers,\r\n locale,\r\n naLabel,\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 [hasAnimatedOnce, setHasAnimatedOnce] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isInView && !hasAnimatedOnce) {\r\n const timeout = setTimeout(\r\n () => {\r\n setHasAnimatedOnce(true);\r\n },\r\n (animate.duration + 0.5) * 1000,\r\n );\r\n return () => clearTimeout(timeout);\r\n }\r\n }, [isInView, hasAnimatedOnce, animate.duration]);\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: yAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n const MouseoverRectRef = useRef(null);\r\n const dataFormatted = orderBy(\r\n data.map(d => ({\r\n ...d,\r\n date: parse(`${d.date}`, dateFormat, new Date()),\r\n })),\r\n ['date'],\r\n ['asc'],\r\n );\r\n const highlightAreaSettingsFormatted = highlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: [\r\n d.coordinates[0] === null ? null : parse(`${d.coordinates[0]}`, dateFormat, new Date()),\r\n d.coordinates[1] === null ? null : parse(`${d.coordinates[1]}`, dateFormat, new Date()),\r\n ],\r\n }));\r\n const customHighlightAreaSettingsFormatted = customHighlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: d.coordinates.map((el, j) =>\r\n j % 2 === 0 ? parse(`${el}`, dateFormat, new Date()) : (el as number),\r\n ),\r\n }));\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const minYear = minDate ? parse(`${minDate}`, dateFormat, new Date()) : dataFormatted[0].date;\r\n const maxYear = maxDate\r\n ? parse(`${maxDate}`, dateFormat, new Date())\r\n : dataFormatted[dataFormatted.length - 1].date;\r\n const minParam1 =\r\n Math.min(...dataFormatted.map(d => d.y1)) !== Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y1)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y1))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataFormatted.map(d => d.y2)) !== Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y2)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y2))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataFormatted.map(d => d.y1)) !== Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y1))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataFormatted.map(d => d.y2)) !== Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y2))\r\n : 0;\r\n\r\n const minParam = checkIfNullOrUndefined(minValue)\r\n ? minParam1 < minParam2\r\n ? minParam1\r\n : minParam2\r\n : (minValue as number);\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n const x = scaleTime().domain([minYear, maxYear]).range([0, graphWidth]);\r\n\r\n const y = scaleLinear()\r\n .domain([\r\n checkIfNullOrUndefined(minValue) ? minParam : (minValue as number),\r\n checkIfNullOrUndefined(maxValue) ? (maxParam > 0 ? maxParam : 0) : (maxValue as number),\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape1 = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y1))\r\n .curve(curve);\r\n\r\n const lineShape2 = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y2))\r\n .curve(curve);\r\n\r\n const mainGraphArea = area<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y1(d => y(d.y1))\r\n .y0(d => y(d.y2))\r\n .curve(curve);\r\n const mainGraphArea1 = area<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y1(d => y(d.y1))\r\n .y0(0)\r\n .curve(curve);\r\n const mainGraphArea2 = area<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y1(d => y(d.y2))\r\n .y0(0)\r\n .curve(curve);\r\n const yTicks = y.ticks(noOfYTicks);\r\n const xTicks = x.ticks(noOfXTicks);\r\n useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mousemove = (event: any) => {\r\n const selectedData =\r\n dataFormatted[\r\n bisectCenter(\r\n dataFormatted.map(d => d.date),\r\n x.invert(pointer(event)[0]),\r\n 0,\r\n )\r\n ];\r\n setMouseOverData(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n onSeriesMouseOver?.(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n };\r\n const mouseout = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n };\r\n select(MouseoverRectRef.current).on('mousemove', mousemove).on('mouseout', mouseout);\r\n }, [x, dataFormatted, onSeriesMouseOver]);\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 <clipPath id={`above${idSuffix}`}>\r\n <path\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n d={mainGraphArea2(dataFormatted as any) as string}\r\n style={{ fill: 'none' }}\r\n />\r\n </clipPath>\r\n <clipPath id={`below${idSuffix}`}>\r\n <path\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n d={mainGraphArea1(dataFormatted as any) as string}\r\n style={{ fill: 'none' }}\r\n />\r\n </clipPath>\r\n <HighlightArea\r\n areaSettings={highlightAreaSettingsFormatted}\r\n width={graphWidth}\r\n height={graphHeight}\r\n scale={x}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <CustomArea\r\n areaSettings={customHighlightAreaSettingsFormatted}\r\n scaleX={x}\r\n scaleY={y}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <g>\r\n <g>\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 <Axis\r\n y1={y(minParam < 0 ? 0 : minParam)}\r\n y2={y(minParam < 0 ? 0 : minParam)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={numberFormattingFunction(\r\n minParam < 0 ? 0 : minParam,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(minParam < 0 ? 0 : minParam),\r\n dx: 0,\r\n dy: maxParam < 0 ? '1rem' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\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={yAxisTitle}\r\n rotate90\r\n />\r\n </g>\r\n </g>\r\n <XTicksAndGridLines\r\n values={xTicks.map(d => format(d, dateFormat))}\r\n x={xTicks.map(d => x(d))}\r\n y1={0}\r\n y2={graphHeight}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: cn('opacity-0', classNames?.xAxis?.gridLines),\r\n labels: cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 xs:max-[360px]:hidden text-[9px] md:text-[10px] lg:text-xs',\r\n classNames?.xAxis?.labels,\r\n ),\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='primary'\r\n showGridLines\r\n precision={precision}\r\n locale={locale}\r\n padZeros={padZeros}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g>\r\n <motion.path\r\n clipPath={`url(#below${idSuffix})`}\r\n d={mainGraphArea(dataFormatted) || ''}\r\n style={{ fill: diffAreaColors[1] }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 1 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n <motion.path\r\n clipPath={`url(#above${idSuffix})`}\r\n d={mainGraphArea(dataFormatted) || ''}\r\n style={{ fill: diffAreaColors[0] }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </g>\r\n <g>\r\n <motion.path\r\n d={lineShape1(dataFormatted) || ''}\r\n style={{\r\n fill: 'none',\r\n stroke: lineColors[0],\r\n strokeWidth,\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { pathLength: 0, d: lineShape1(dataFormatted) || '', opacity: 1 },\r\n whileInView: {\r\n pathLength: 1,\r\n d: lineShape1(dataFormatted) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n <motion.path\r\n style={{\r\n fill: 'none',\r\n stroke: lineColors[1],\r\n strokeWidth,\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { pathLength: 0, d: lineShape2(dataFormatted) || '', opacity: 1 },\r\n whileInView: {\r\n pathLength: 1,\r\n d: lineShape2(dataFormatted) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showColorLegendAtTop ? null : (\r\n <g>\r\n <motion.text\r\n key={colorDomain[0]}\r\n className='text-xs'\r\n dx={5}\r\n dy={4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y1 as number),\r\n fill: lineColors[0],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y1 as number),\r\n fill: lineColors[0],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {colorDomain[0]}\r\n </motion.text>\r\n <motion.text\r\n key={colorDomain[1]}\r\n className='text-xs'\r\n dx={5}\r\n dy={4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y2 as number),\r\n fill: lineColors[1],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(dataFormatted[dataFormatted.length - 1].date),\r\n y: y(dataFormatted[dataFormatted.length - 1].y2 as number),\r\n fill: lineColors[1],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {colorDomain[1]}\r\n </motion.text>\r\n </g>\r\n )}\r\n {mouseOverData ? (\r\n <line\r\n y1={0}\r\n y2={graphHeight}\r\n x1={x(mouseOverData.date)}\r\n x2={x(mouseOverData.date)}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-700 dark:stroke-primary-gray-100',\r\n classNames?.mouseOverLine,\r\n )}\r\n style={styles?.mouseOverLine}\r\n />\r\n ) : null}\r\n {dataFormatted.map((d, i) => (\r\n <motion.g key={i}>\r\n {!checkIfNullOrUndefined(d.y1) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={\r\n graphWidth / dataFormatted.length < 5\r\n ? 0\r\n : graphWidth / dataFormatted.length < 20\r\n ? 2\r\n : 4\r\n }\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, cx: x(d.date), cy: y(d.y1), fill: lineColors[0] },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[0],\r\n transition: { duration: 0.5, delay: animate.duration },\r\n cx: x(d.date),\r\n cy: y(d.y1),\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 dy={d.y2 < d.y1 ? -8 : '1em'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-1 text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, x: x(d.date), y: y(d.y1), fill: lineColors[0] },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[0],\r\n x: x(d.date),\r\n y: y(d.y1),\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n d.y1,\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 </>\r\n ) : null}\r\n {!checkIfNullOrUndefined(d.y2) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={\r\n graphWidth / dataFormatted.length < 5\r\n ? 0\r\n : graphWidth / dataFormatted.length < 20\r\n ? 2\r\n : 4\r\n }\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, cx: x(d.date), cy: y(d.y2), fill: lineColors[1] },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[1],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n cx: x(d.date),\r\n cy: y(d.y2),\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 dy={d.y2 > d.y1 ? -8 : '1em'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-2 text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { opacity: 0, x: x(d.date), y: y(d.y2), fill: lineColors[1] },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(d.date),\r\n y: y(d.y2),\r\n fill: lineColors[1],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {numberFormattingFunction(\r\n d.y2,\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 </>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n </g>\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 <g>\r\n {annotations.map((d, i) => {\r\n const endPoints = getLineEndPoint(\r\n {\r\n x: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n },\r\n {\r\n x: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n y: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n },\r\n checkIfNullOrUndefined(d.connectorRadius) ? 3.5 : (d.connectorRadius as number),\r\n );\r\n const connectorSettings = d.showConnector\r\n ? {\r\n y1: endPoints.y,\r\n x1: endPoints.x,\r\n y2: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0)\r\n : 0 + (d.yOffset || 0),\r\n x2: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n cy: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n cx: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n circleRadius: checkIfNullOrUndefined(d.connectorRadius)\r\n ? 3.5\r\n : (d.connectorRadius as number),\r\n strokeWidth: d.showConnector === true ? 2 : Math.min(d.showConnector || 0, 1),\r\n }\r\n : undefined;\r\n const labelSettings = {\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n x: rtl\r\n ? 0\r\n : d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n width: rtl\r\n ? d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)\r\n : graphWidth +\r\n margin.right -\r\n (d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)),\r\n maxWidth: d.maxWidth,\r\n fontWeight: d.fontWeight,\r\n align: d.align,\r\n };\r\n return (\r\n <Annotation\r\n key={i}\r\n color={d.color}\r\n connectorsSettings={connectorSettings}\r\n labelSettings={labelSettings}\r\n text={d.text}\r\n classNames={d.classNames}\r\n styles={d.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n );\r\n })}\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n <rect\r\n ref={MouseoverRectRef}\r\n style={{\r\n fill: 'none',\r\n pointerEvents: 'all',\r\n }}\r\n width={graphWidth}\r\n height={graphHeight}\r\n />\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 </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n AnnotationSettingsDataType,\r\n CustomHighlightAreaSettingsDataType,\r\n DifferenceLineChartDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n HighlightAreaSettingsDataType,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\nimport { getNoOfTicks } from '@/Utils/getNoOfTicks';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: DifferenceLineChartDataType[];\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 the 2 lines */\r\n lineColors?: [string, string];\r\n /** Array of colors to highlight the negative and positive difference between the lines */\r\n diffAreaColors?: [string, string];\r\n /** Toggle the visibility of color legend between the top of the graphs and next to the line */\r\n showColorLegendAtTop?: boolean;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\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 /** Maximum value of the date for the chart */\r\n maxDate?: string | number;\r\n /** Minimum value of the date for the chart */\r\n minDate?: string | number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** No. of ticks on the x-axis */\r\n noOfXTicks?: number;\r\n /** No. of ticks on the y-axis */\r\n noOfYTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Stroke width of the line */\r\n strokeWidth?: number;\r\n /** Toggle the initial animation of the line. If the type is number then it uses the number as the time in seconds for animation. */\r\n animate?: boolean | AnimateDataType;\r\n /** Labels for the lines */\r\n labels: [string, string];\r\n /** Format of the date in the data object. Available formats can be found [here](https://date-fns.org/docs/format) */\r\n dateFormat?: string;\r\n /** Title for the Y-axis */\r\n yAxisTitle?: string;\r\n /** Annotations on the chart */\r\n annotations?: AnnotationSettingsDataType[];\r\n /** Highlighted area(square) on the chart */\r\n highlightAreaSettings?: HighlightAreaSettingsDataType[];\r\n /** Highlighted area(custom shape) on the chart */\r\n customHighlightAreaSettings?: CustomHighlightAreaSettingsDataType[];\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: 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 /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_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 DifferenceLineChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n noOfXTicks = 10,\r\n dateFormat = 'yyyy',\r\n showValues = false,\r\n padding,\r\n lineColors = [\r\n Colors.light.categoricalColors.colors[0],\r\n Colors.light.categoricalColors.colors[1],\r\n ],\r\n backgroundColor = false,\r\n leftMargin = 30,\r\n rightMargin = 50,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n tooltip,\r\n highlightAreaSettings = [],\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n animate = false,\r\n language = 'en',\r\n minHeight = 0,\r\n labels,\r\n showColorLegendAtTop = false,\r\n colorLegendTitle,\r\n diffAreaColors = [Colors.alerts.red, Colors.alerts.darkGreen],\r\n strokeWidth = 2,\r\n showDots = true,\r\n refValues = [],\r\n minValue,\r\n maxValue,\r\n annotations = [],\r\n customHighlightAreaSettings = [],\r\n theme = 'light',\r\n ariaLabel,\r\n yAxisTitle,\r\n noOfYTicks = 5,\r\n minDate,\r\n maxDate,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n numberDisplayOptions,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {showColorLegendAtTop && data.length > 0 ? (\r\n <ColorLegend\r\n colorDomain={labels}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={lineColors}\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 <Graph\r\n data={data}\r\n lineColors={lineColors}\r\n colorDomain={labels}\r\n width={svgWidth}\r\n height={svgHeight}\r\n dateFormat={dateFormat}\r\n showValues={showValues}\r\n noOfXTicks={noOfXTicks ?? getNoOfTicks(svgWidth)}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n highlightAreaSettings={highlightAreaSettings}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showColorLegendAtTop={showColorLegendAtTop}\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 rtl={language === 'he' || language === 'ar'}\r\n diffAreaColors={diffAreaColors}\r\n idSuffix={generateRandomString(8)}\r\n strokeWidth={strokeWidth}\r\n showDots={showDots}\r\n refValues={refValues}\r\n minValue={minValue}\r\n maxValue={maxValue}\r\n annotations={annotations}\r\n customHighlightAreaSettings={customHighlightAreaSettings}\r\n yAxisTitle={yAxisTitle}\r\n noOfYTicks={noOfYTicks}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n curveType={curveType}\r\n styles={styles}\r\n classNames={classNames}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n locale={numberDisplayOptions?.locale || 'en'}\r\n padZeros={numberDisplayOptions?.padZeros || false}\r\n suffix={numberDisplayOptions?.suffix || ''}\r\n prefix={numberDisplayOptions?.prefix || ''}\r\n precision={numberDisplayOptions?.precision ?? 2}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","lineColors","suffix","prefix","dateFormat","showValues","noOfXTicks","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","highlightAreaSettings","onSeriesMouseOver","animate","rtl","showColorLegendAtTop","colorDomain","diffAreaColors","idSuffix","strokeWidth","showDots","refValues","minValue","maxValue","annotations","customHighlightAreaSettings","yAxisTitle","noOfYTicks","minDate","maxDate","curveType","styles","classNames","precision","customLayers","locale","naLabel","padZeros","svgRef","useRef","t0","amount","once","isInView","useInView","hasAnimatedOnce","setHasAnimatedOnce","useState","t1","t2","duration","timeout","setTimeout","clearTimeout","useEffect","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","undefined","eventX","setEventX","eventY","setEventY","t3","t4","top","bottom","left","right","margin","MouseoverRectRef","t5","d","date","parse","Date","dataFormatted","orderBy","map","t6","t7","d_0","coordinates","highlightAreaSettingsFormatted","t8","d_1","el","j","customHighlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam1","Math","min","_temp","Infinity","_temp2","_temp3","minParam2","_temp4","_temp5","_temp6","maxParam1","max","_temp7","_temp8","maxParam2","_temp9","_temp0","checkIfNullOrUndefined","minParam","maxParam","x","scaleTime","domain","range","t9","t10","y","scaleLinear","nice","lineShape1","line","d_12","d_13","y1","lineShape2","d_14","d_15","y2","mainGraphArea","area","d_16","d_17","y0","d_18","mainGraphArea1","d_19","d_20","mainGraphArea2","d_21","d_22","yTicks","ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp1","invert","pointer","clientY","clientX","mouseout","select","current","on","t11","Symbol","for","fill","t12","t13","jsx","HighlightArea","t14","yAxis","gridLines","t15","labels","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","numberFormattingFunction","t26","t27","t28","t29","dx","dy","t30","xAxis","axis","t31","t32","label","t33","t34","t35","t36","Axis","t37","t38","t39","title","t40","t41","AxisTitle","t42","d_27","format","t43","t44","d_28","t45","t46","t47","t48","t49","cn","t50","t51","t52","t53","filter","_temp12","_temp13","t54","t55","opacity","transition","t56","t57","initial","whileInView","t58","t59","t60","t61","t62","stroke","t63","t64","t65","t66","t67","t68","t69","pathLength","t70","jsxs","motion","delay","t71","mouseOverLine","t72","graphObjectValues","t73","d_31","i","Fragment","cx","cy","textAnchor","el_0","i_0","RefLineY","text","color","value","t74","t75","d_32","i_1","endPoints","getLineEndPoint","xCoordinate","xOffset","yCoordinate","yOffset","connectorRadius","connectorSettings","showConnector","x1","x2","circleRadius","labelSettings","maxWidth","fontWeight","align","Annotation","t76","_temp14","_temp15","t77","pointerEvents","t78","t79","Tooltip","CustomArea","YTicksAndGridLines","_temp10","_temp11","d_26","XTicksAndGridLines","d_34","layer","d_33","position","d_30","d_29","d_25","d_24","d_23","d_10","d_11","d_8","d_9","d_5","d_6","d_7","d_2","d_3","d_4","DifferenceLineChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","minHeight","colorLegendTitle","theme","ariaLabel","numberDisplayOptions","Colors","light","categoricalColors","colors","alerts","red","darkGreen","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","colorLegend","ColorLegend","EmptyState","getNoOfTicks","generateRandomString","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
package/dist/DonutChart.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-D4pAp7u0.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-D4pAp7u0.cjs"),b=require("react"),nt=require("./Typography-BqmyF1gP.cjs"),mt=require("./index-Cno4Q0YE.cjs"),pt=require("./Source-PKuwZOn3.cjs"),xt=require("./index-DQA8q5sC.cjs"),dt=require("./Tooltip-C9F3uYG0.cjs"),J=require("./Colors.cjs"),ct=require("./numberFormattingFunction-u2iNHL_c.cjs"),gt=require("./DetailsModal-Du8Fr1QD.cjs"),G=require("./array-DMyR1sql.cjs"),st=require("./proxy-CqH8m8IQ.cjs"),ht=require("./use-in-view-dnRv_qqF.cjs"),ft=require("./index-FXfr51ZM.cjs"),yt=require("./GraphFooter.cjs"),jt=require("./GraphHeader.cjs"),bt=require("./EmptyState-CFmiFPHz.cjs"),at=require("./GraphContainer-Cul9b74X.cjs"),vt=Math.PI,rt=2*vt;function Et(c,t){return t<c?-1:t>c?1:t>=c?0:NaN}function Ct(c){return c}function Mt(){var c=Ct,t=Et,n=null,i=G.constant(0),s=G.constant(rt),h=G.constant(0);function r(e){var l,f=(e=G.array(e)).length,u,D,k=0,d=new Array(f),j=new Array(f),y=+i.apply(this,arguments),p=Math.min(rt,Math.max(-rt,s.apply(this,arguments)-y)),N,v=Math.min(Math.abs(p)/f,h.apply(this,arguments)),P=v*(p<0?-1:1),x;for(l=0;l<f;++l)(x=j[d[l]=l]=+c(e[l],l,e))>0&&(k+=x);for(t!=null?d.sort(function(E,V){return t(j[E],j[V])}):n!=null&&d.sort(function(E,V){return n(e[E],e[V])}),l=0,D=k?(p-f*P)/k:0;l<f;++l,y=N)u=d[l],x=j[u],N=y+(x>0?x*D:0)+P,j[u]={data:e[u],index:l,value:x,startAngle:y,endAngle:N,padAngle:v};return j}return r.value=function(e){return arguments.length?(c=typeof e=="function"?e:G.constant(+e),r):c},r.sortValues=function(e){return arguments.length?(t=e,n=null,r):t},r.sort=function(e){return arguments.length?(n=e,t=null,r):n},r.startAngle=function(e){return arguments.length?(i=typeof e=="function"?e:G.constant(+e),r):i},r.endAngle=function(e){return arguments.length?(s=typeof e=="function"?e:G.constant(+e),r):s},r.padAngle=function(e){return arguments.length?(h=typeof e=="function"?e:G.constant(+e),r):h},r}const it=(c,t,n,i)=>({x:c+n*Math.cos(i),y:t+n*Math.sin(i)});function lt(c,t,n,i,s){const h=it(c,t,n,i),r=it(c,t,n,Math.abs(s-i)===2*Math.PI?.999999*s:s),e=s-i<=Math.PI?"0":"1";return["M",h.x,h.y,"A",n,n,0,e,1,r.x,r.y].join(" ")}function Rt(c){const t=o.compilerRuntimeExports.c(59),{mainText:n,data:i,radius:s,colors:h,subNote:r,strokeWidth:e,tooltip:l,onSeriesMouseOver:f,onSeriesMouseClick:u,colorDomain:D,resetSelectionOnDoubleClick:k,detailsOnClick:d,styles:j,classNames:y,animate:p,trackColor:N,naLabel:v}=c,P=b.useRef(null);let x;t[0]!==p.amount||t[1]!==p.once?(x={once:p.once,amount:p.amount},t[0]=p.amount,t[1]=p.once,t[2]=x):x=t[2];const E=ht.useInView(P,x),V=Mt().sort(null).startAngle(0).value(Dt),[g,I]=b.useState(void 0),[w,S]=b.useState(void 0),[$,K]=b.useState(void 0),[L,Q]=b.useState(void 0),U=st.motion,C=`${s*2}px`,M=`${s*2}px`,B=`0 0 ${s*2} ${s*2}`,ot="ltr",tt="mx-auto",q=st.motion,H=`translate(${s} ${s})`;let z;t[3]!==i||t[4]!==n||t[5]!==v||t[6]!==s||t[7]!==e||t[8]!==r?(z=n||r?o.jsxRuntimeExports.jsx("foreignObject",{y:0-(s-e),x:0-(s-e),width:2*(s-e),height:2*(s-e),children:o.jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-4",children:[n?b.isValidElement(n)?n:o.jsxRuntimeExports.jsx(nt.E,{marginBottom:"none",className:"donut-main-text text-primary-gray-700 dark:text-primary-gray-100 leading-none text-center",children:typeof n=="string"?n:i.findIndex(m=>m.label===n.label)!==-1?ct.numberFormattingFunction(i[i.findIndex(m=>m.label===n.label)].size,v,n.precision,n.prefix,n.suffix,n.locale,n.padZeros):v}):null,r?o.jsxRuntimeExports.jsx(nt._,{marginBottom:"none",size:"base",leading:"none",className:"donut-sub-note text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold",children:r}):typeof n=="string"||!n||b.isValidElement(n)?null:o.jsxRuntimeExports.jsx(nt._,{size:"base",marginBottom:"none",leading:"none",className:"donut-label text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold",children:n.label})]})}):null,t[3]=i,t[4]=n,t[5]=v,t[6]=s,t[7]=e,t[8]=r,t[9]=z):z=t[9];const T=s-e/2;let A;t[10]!==e||t[11]!==T||t[12]!==N?(A=o.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:T,fill:"none",stroke:N,strokeWidth:e}),t[10]=e,t[11]=T,t[12]=N,t[13]=A):A=t[13];const O=ft.AnimatePresence;let a;t[14]!==p.duration||t[15]!==D||t[16]!==h||t[17]!==d||t[18]!==E||t[19]!==w||t[20]!==g||t[21]!==u||t[22]!==f||t[23]!==s||t[24]!==k||t[25]!==S||t[26]!==e?(a=(m,ut)=>o.jsxRuntimeExports.jsx(st.motion.path,{variants:{initial:{pathLength:0,d:lt(0,0,s-e/2,m.startAngle-Math.PI/2,m.endAngle-Math.PI/2),opacity:g?g.label===m.data.label?1:.3:1},whileInView:{pathLength:1,d:lt(0,0,s-e/2,m.startAngle-Math.PI/2,m.endAngle-Math.PI/2),opacity:g?g.label===m.data.label?1:.3:1,transition:{duration:p.duration}}},initial:"initial",animate:E?"whileInView":"initial",exit:{opacity:0,transition:{duration:p.duration}},style:{stroke:D.indexOf(m.data.label)!==-1?h[D.indexOf(m.data.label)%h.length]:J.Colors.gray,strokeWidth:e,fill:"none"},onMouseEnter:_=>{I(m.data),Q(_.clientY),K(_.clientX),f?.(m)},onClick:()=>{(u||d)&&(xt.isEqual(w,m.data)&&k?(S(void 0),u?.(void 0)):(S(m.data),u&&u(m.data)))},onMouseMove:_=>{I(m.data),Q(_.clientY),K(_.clientX)},onMouseLeave:()=>{I(void 0),K(void 0),Q(void 0),f?.(void 0)}},ut),t[14]=p.duration,t[15]=D,t[16]=h,t[17]=d,t[18]=E,t[19]=w,t[20]=g,t[21]=u,t[22]=f,t[23]=s,t[24]=k,t[25]=S,t[26]=e,t[27]=a):a=t[27];const F=V(i).map(a);let R;t[28]!==O||t[29]!==F?(R=o.jsxRuntimeExports.jsx(O,{children:F}),t[28]=O,t[29]=F,t[30]=R):R=t[30];let W;t[31]!==A||t[32]!==R||t[33]!==q.g||t[34]!==H||t[35]!==z?(W=o.jsxRuntimeExports.jsxs(q.g,{transform:H,children:[z,A,R]}),t[31]=A,t[32]=R,t[33]=q.g,t[34]=H,t[35]=z,t[36]=W):W=t[36];let X;t[37]!==U.svg||t[38]!==W||t[39]!==C||t[40]!==M||t[41]!==B?(X=o.jsxRuntimeExports.jsx(U.svg,{ref:P,width:C,height:M,viewBox:B,direction:ot,className:tt,children:W}),t[37]=U.svg,t[38]=W,t[39]=C,t[40]=M,t[41]=B,t[42]=X):X=t[42];let Y;t[43]!==y?.tooltip||t[44]!==$||t[45]!==L||t[46]!==g||t[47]!==j?.tooltip||t[48]!==l?(Y=g&&l&&$&&L?o.jsxRuntimeExports.jsx(dt.Tooltip,{data:g,body:l,xPos:$,yPos:L,backgroundStyle:j?.tooltip,className:y?.tooltip}):null,t[43]=y?.tooltip,t[44]=$,t[45]=L,t[46]=g,t[47]=j?.tooltip,t[48]=l,t[49]=Y):Y=t[49];let Z;t[50]!==y?.modal||t[51]!==d||t[52]!==w||t[53]!==S?(Z=d&&w!==void 0?o.jsxRuntimeExports.jsx(gt.DetailsModal,{body:d,data:w,setData:S,className:y?.modal}):null,t[50]=y?.modal,t[51]=d,t[52]=w,t[53]=S,t[54]=Z):Z=t[54];let et;return t[55]!==X||t[56]!==Y||t[57]!==Z?(et=o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[X,Y,Z]}),t[55]=X,t[56]=Y,t[57]=Z,t[58]=et):et=t[58],et}function Dt(c){return c.size}function kt(c){const{mainText:t,graphTitle:n,colors:i=J.Colors.light.categoricalColors.colors,sources:s,strokeWidth:h=50,graphDescription:r,subNote:e,footNote:l,radius:f,data:u,showColorScale:D=!0,padding:k,backgroundColor:d=!1,tooltip:j,onSeriesMouseOver:y,graphID:p,onSeriesMouseClick:N,graphDownload:v=!1,dataDownload:P=!1,colorDomain:x,sortData:E,language:V="en",theme:g="light",width:I,height:w,minHeight:S=0,relativeHeight:$,ariaLabel:K,resetSelectionOnDoubleClick:L=!0,colorScaleMaxWidth:Q,detailsOnClick:U,styles:C,classNames:M,animate:B=!1,trackColor:ot=J.Colors.light.grays["gray-200"],naLabel:tt="NA",numberDisplayOptions:q}=c,[H,z]=b.useState(0),T=b.useRef(null),A=b.useRef(null);b.useEffect(()=>{const a=new ResizeObserver(F=>{z((Math.min(F[0].target.clientWidth||620,F[0].target.clientHeight||480)||420)/2)});return T.current&&a.observe(T.current),()=>a.disconnect()},[]);const O=E?mt.orderBy(u,["size"],[E]):u;return o.jsxRuntimeExports.jsxs(at.GraphContainer,{className:M?.graphContainer,style:C?.graphContainer,id:p,ref:A,"aria-label":K,backgroundColor:d,theme:g,language:V,minHeight:S,width:I,height:w,relativeHeight:$,padding:k,children:[n||r||v||P?o.jsxRuntimeExports.jsx(jt.GraphHeader,{styles:{title:C?.title,description:C?.description},classNames:{title:M?.title,description:M?.description},graphTitle:n,graphDescription:r,width:I,graphDownload:v?A:void 0,dataDownload:P?u.map(a=>a.data).filter(a=>a!==void 0).length>0?u.map(a=>a.data).filter(a=>a!==void 0):u.filter(a=>a!==void 0):null}):null,D&&u.length>0?o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[o.jsxRuntimeExports.jsx("div",{className:o.mo("leading-0 flex mb-0 ml-auto mr-auto justify-center gap-x-3 gap-y-0 flex-wrap",M?.colorLegend),style:{maxWidth:Q},"aria-label":"Color legend",children:O.map((a,F)=>o.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center pb-3",children:[o.jsxRuntimeExports.jsx("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:(x||O.map(R=>R.label)).indexOf(a.label)!==-1?(i||J.Colors[g].categoricalColors.colors)[(x||O.map(R=>R.label)).indexOf(a.label)%(i||J.Colors[g].categoricalColors.colors).length]:J.Colors.gray}}),o.jsxRuntimeExports.jsxs(nt._,{marginBottom:"none",size:"sm",className:"text-primary-gray-700 dark:text-primary-gray-100",children:[a.label,":"," ",o.jsxRuntimeExports.jsx("span",{className:"font-bold",style:{fontSize:"inherit"},children:ct.numberFormattingFunction(a.size,tt,q?.precision,q?.prefix,q?.suffix,q?.locale,q?.padZeros)})]})]},F))}),o.jsxRuntimeExports.jsx(pt.n,{size:"lg"})]}):null,o.jsxRuntimeExports.jsxs(at.GraphArea,{ref:T,children:[u.length===0&&o.jsxRuntimeExports.jsx(bt.EmptyState,{}),H&&u.length>0?o.jsxRuntimeExports.jsx(Rt,{mainText:t,data:O,colors:i,radius:f||H,subNote:e,strokeWidth:h,tooltip:j,colorDomain:x||O.map(a=>a.label),onSeriesMouseOver:y,onSeriesMouseClick:N,resetSelectionOnDoubleClick:L,styles:C,detailsOnClick:U,animate:B===!0?{duration:.5,once:!0,amount:.5}:B||{duration:0,once:!0,amount:0},trackColor:ot,naLabel:tt}):null]}),s||l?o.jsxRuntimeExports.jsx(yt.GraphFooter,{styles:{footnote:C?.footnote,source:C?.source},classNames:{footnote:M?.footnote,source:M?.source},sources:s,footNote:l,width:I}):null]})}exports.DonutChart=kt;
|
|
2
2
|
//# sourceMappingURL=DonutChart.cjs.map
|