@undp/data-viz 2.4.1 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AreaChart.cjs +1 -1
- package/dist/AreaChart.cjs.map +1 -1
- package/dist/AreaChart.d.ts +11 -9
- package/dist/AreaChart.js +320 -322
- package/dist/AreaChart.js.map +1 -1
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.d.ts +15 -25
- package/dist/BarGraph.js +1694 -1694
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.d.ts +13 -9
- package/dist/BasicStatCard.js +79 -81
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.d.ts +11 -9
- package/dist/BeeSwarmChart.js +335 -336
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +13 -3
- package/dist/BiVariateChoroplethMap.js +309 -304
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.d.ts +11 -5
- package/dist/BulletChart.js +560 -559
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.d.ts +11 -9
- package/dist/ButterflyChart.js +348 -350
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +11 -3
- package/dist/ChoroplethMap.js +314 -311
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.d.ts +11 -9
- package/dist/CirclePackingGraph.js +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.d.ts +1 -1
- package/dist/DataCards.js +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.d.ts +4 -5
- package/dist/DataTable.js +114 -116
- package/dist/DataTable.js.map +1 -1
- package/dist/{DetailsModal-jmmKRMRM.cjs → DetailsModal-Du8Fr1QD.cjs} +2 -2
- package/dist/{DetailsModal-jmmKRMRM.cjs.map → DetailsModal-Du8Fr1QD.cjs.map} +1 -1
- package/dist/{DetailsModal-B2XBWR7w.js → DetailsModal-GqEbGHY2.js} +2 -2
- package/dist/{DetailsModal-B2XBWR7w.js.map → DetailsModal-GqEbGHY2.js.map} +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.d.ts +11 -9
- package/dist/DifferenceLineChart.js +502 -504
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.d.ts +14 -9
- package/dist/DonutChart.js +174 -179
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +1 -1
- package/dist/DotDensityMap.js +270 -267
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.d.ts +13 -9
- package/dist/DualAxisLineChart.js +341 -351
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.d.ts +11 -9
- package/dist/DumbbellChart.js +592 -593
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.d.ts +1 -1
- package/dist/GeoHubCompareMaps.js +1 -1
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.d.ts +1 -1
- package/dist/GeoHubMap.js +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.d.ts +1 -1
- package/dist/GeoHubMapWithLayerSelection.js +1 -1
- package/dist/GraphEl-BgkDbq50.cjs +2 -0
- package/dist/GraphEl-BgkDbq50.cjs.map +1 -0
- package/dist/GraphEl-Ch0uAeZw.js +1830 -0
- package/dist/GraphEl-Ch0uAeZw.js.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.d.ts +29 -16
- package/dist/GriddedGraphs.js +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +29 -16
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.d.ts +11 -9
- package/dist/HeatMap.js +203 -205
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.cjs.map +1 -1
- package/dist/Histogram.d.ts +11 -5
- package/dist/Histogram.js +88 -89
- package/dist/Histogram.js.map +1 -1
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.cjs.map +1 -1
- package/dist/HybridMap.d.ts +11 -3
- package/dist/HybridMap.js +339 -336
- package/dist/HybridMap.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +1 -1
- package/dist/ImageDownloadButton.js +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.d.ts +11 -9
- package/dist/LineChartWithConfidenceInterval.js +393 -395
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +1 -1
- package/dist/LinearColorLegend.js +1 -1
- package/dist/MultiGraphDashboard.d.ts +29 -16
- package/dist/MultiGraphDashboardFromConfig.d.ts +29 -16
- package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.d.ts +11 -9
- package/dist/MultiLineAltChart.js +411 -413
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.d.ts +11 -9
- package/dist/MultiLineChart.js +438 -440
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +13 -13
- package/dist/ParetoChart.js +347 -355
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +29 -16
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +29 -16
- package/dist/PerformanceIntensiveScrollStory.d.ts +29 -16
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.d.ts +11 -5
- package/dist/RadarChart.js +213 -213
- package/dist/RadarChart.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.d.ts +11 -9
- package/dist/SankeyChart.js +448 -450
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +15 -13
- package/dist/ScatterPlot.js +477 -483
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.d.ts +29 -16
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.d.ts +11 -9
- package/dist/SimpleLineChart.js +362 -364
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.d.ts +29 -16
- package/dist/SingleGraphDashboard.js +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +29 -16
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +29 -16
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +29 -16
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +29 -16
- package/dist/SingleGraphDashboardThreeDGraphs.js +40 -39
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +29 -16
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.d.ts +1 -1
- package/dist/SlopeChart.js +2 -2
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.d.ts +1 -1
- package/dist/SparkLine.js +1 -1
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.d.ts +11 -9
- package/dist/StatCardFromData.js +113 -116
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.d.ts +11 -9
- package/dist/StripChart.js +434 -435
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +11 -3
- package/dist/ThreeDGlobe.js +143 -143
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.js +1 -1
- package/dist/{Tooltip-Bj-s__cI.js → Tooltip-3EYDVa3w.js} +2 -2
- package/dist/{Tooltip-Bj-s__cI.js.map → Tooltip-3EYDVa3w.js.map} +1 -1
- package/dist/{Tooltip-Hr46paWP.cjs → Tooltip-C9F3uYG0.cjs} +2 -2
- package/dist/{Tooltip-Hr46paWP.cjs.map → Tooltip-C9F3uYG0.cjs.map} +1 -1
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.d.ts +11 -9
- package/dist/TreeMapGraph.js +369 -371
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +29 -16
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.d.ts +11 -5
- package/dist/UnitChart.js +118 -119
- package/dist/UnitChart.js.map +1 -1
- package/dist/WaterfallChart.cjs +1 -1
- package/dist/WaterfallChart.cjs.map +1 -1
- package/dist/WaterfallChart.d.ts +11 -9
- package/dist/WaterfallChart.js +306 -308
- package/dist/WaterfallChart.js.map +1 -1
- package/dist/XTicksAndGridLines-B4UhDVyU.cjs +2 -0
- package/dist/XTicksAndGridLines-B4UhDVyU.cjs.map +1 -0
- package/dist/XTicksAndGridLines-CkYwVshF.js +40 -0
- package/dist/XTicksAndGridLines-CkYwVshF.js.map +1 -0
- package/dist/YTicksAndGridLines-BbujwxOB.js +40 -0
- package/dist/YTicksAndGridLines-BbujwxOB.js.map +1 -0
- package/dist/YTicksAndGridLines-sT3zdCs6.cjs +2 -0
- package/dist/YTicksAndGridLines-sT3zdCs6.cjs.map +1 -0
- package/dist/{imageDownload-Diofs_vY.js → imageDownload-BYsNEtMS.js} +11 -11
- package/dist/{imageDownload-Diofs_vY.js.map → imageDownload-BYsNEtMS.js.map} +1 -1
- package/dist/{imageDownload-61q6jyJW.cjs → imageDownload-CkMwA7Cw.cjs} +4 -4
- package/dist/{imageDownload-61q6jyJW.cjs.map → imageDownload-CkMwA7Cw.cjs.map} +1 -1
- package/dist/index-BPyj_6hG.js +375 -0
- package/dist/index-BPyj_6hG.js.map +1 -0
- package/dist/index-DuLvdHo2.cjs +2 -0
- package/dist/index-DuLvdHo2.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +108 -245
- package/dist/index.js +3 -3
- package/dist/numberFormattingFunction-BUUV_luR.js +28 -0
- package/dist/numberFormattingFunction-BUUV_luR.js.map +1 -0
- package/dist/numberFormattingFunction-u2iNHL_c.cjs +2 -0
- package/dist/numberFormattingFunction-u2iNHL_c.cjs.map +1 -0
- package/dist/{string2HTML-ZoGd08P_.cjs → string2HTML-30nfIm8R.cjs} +2 -2
- package/dist/{string2HTML-ZoGd08P_.cjs.map → string2HTML-30nfIm8R.cjs.map} +1 -1
- package/dist/{string2HTML-BrFperRM.js → string2HTML-DL-pInUB.js} +2 -2
- package/dist/{string2HTML-BrFperRM.js.map → string2HTML-DL-pInUB.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -2
- package/package.json +2 -2
- package/dist/GraphEl-B73N4RIA.js +0 -1906
- package/dist/GraphEl-B73N4RIA.js.map +0 -1
- package/dist/GraphEl-Lt1og0C-.cjs +0 -2
- package/dist/GraphEl-Lt1og0C-.cjs.map +0 -1
- package/dist/XTicksAndGridLines-C5DuC5oY.cjs +0 -2
- package/dist/XTicksAndGridLines-C5DuC5oY.cjs.map +0 -1
- package/dist/XTicksAndGridLines-gdbGX2rm.js +0 -39
- package/dist/XTicksAndGridLines-gdbGX2rm.js.map +0 -1
- package/dist/YTicksAndGridLines-CsNSq9W9.js +0 -39
- package/dist/YTicksAndGridLines-CsNSq9W9.js.map +0 -1
- package/dist/YTicksAndGridLines-DFjm8RCc.cjs +0 -2
- package/dist/YTicksAndGridLines-DFjm8RCc.cjs.map +0 -1
- package/dist/index-B0Awa_de.js +0 -377
- package/dist/index-B0Awa_de.js.map +0 -1
- package/dist/index-CP8cmNzt.cjs +0 -2
- package/dist/index-CP8cmNzt.cjs.map +0 -1
- package/dist/numberFormattingFunction-Cn9R7CM9.cjs +0 -2
- package/dist/numberFormattingFunction-Cn9R7CM9.cjs.map +0 -1
- package/dist/numberFormattingFunction-DqMf_v1m.js +0 -28
- package/dist/numberFormattingFunction-DqMf_v1m.js.map +0 -1
package/dist/ParetoChart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParetoChart.js","sources":["../src/Components/Graphs/ParetoChart/Graph.tsx","../src/Components/Graphs/ParetoChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleBand, scaleLinear } from 'd3-scale';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n ParetoChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: ParetoChartDataType[];\r\n barColor: string;\r\n lineColor: string;\r\n axisTitles: [string, string];\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n barPadding: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n noOfTicks: number;\r\n lineSuffix: string;\r\n barSuffix: string;\r\n linePrefix: string;\r\n showValues: boolean;\r\n barPrefix: string;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n naLabel: string;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n locale: string;\r\n}\r\ninterface DataFormattedType {\r\n id: string;\r\n label: number | string;\r\n line?: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n lineColor,\r\n axisTitles,\r\n sameAxes,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n showValues,\r\n onSeriesMouseOver,\r\n barPadding,\r\n truncateBy,\r\n showLabels,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n lineSuffix,\r\n barSuffix,\r\n linePrefix,\r\n barPrefix,\r\n curveType,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n customLayers,\r\n naLabel,\r\n showAxisLabels,\r\n locale,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin + 50,\r\n right: rightMargin + 65,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = data.map((d, i) => ({ ...d, id: `${i}` }));\r\n const x = scaleBand()\r\n .domain(dataWithId.map(d => `${d.id}`))\r\n .range([0, graphWidth])\r\n .paddingInner(barPadding);\r\n const minParam1 =\r\n Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape = line<DataFormattedType>()\r\n .defined(d => !checkIfNullOrUndefined(d.line))\r\n .x(d => (x(`${d.id}`) as number) + x.bandwidth() / 2)\r\n .y(d => y2(d.line as number))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfTicks);\r\n const y2Ticks = y2.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: barColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: barColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, barPrefix, barSuffix, locale)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: barColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: barColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[0].length > 100\r\n ? `${axisTitles[0].substring(0, 100)}...`\r\n : axisTitles[0]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, naLabel, precision, linePrefix, lineSuffix, locale)}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[1].length > 100\r\n ? `${axisTitles[1].substring(0, 100)}...`\r\n : axisTitles[1]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <Axis\r\n y1={sameAxes ? y1(0) : graphHeight}\r\n y2={sameAxes ? y1(0) : graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, i) => {\r\n return (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 1,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: d.bar ? (d.bar > 0 ? y1(d.bar) : y1(0)) : 0,\r\n height: d.bar ? Math.abs(y1(d.bar) - y1(0)) : 0,\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n x={x(`${i}`)}\r\n width={x.bandwidth()}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.bar) ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n attrY: y1(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n opacity: 0,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: y1(d.bar || 0),\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy={d.bar ? (d.bar >= 0 ? '-5px' : '1em') : '-5px'}\r\n >\r\n {numberFormattingFunction(\r\n d.bar,\r\n naLabel,\r\n precision,\r\n barPrefix,\r\n barSuffix,\r\n locale,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={graphHeight + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n );\r\n })}\r\n <motion.path\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n d: lineShape(dataWithId.map(d => ({ ...d, line: 0 }))) as string,\r\n opacity: 0,\r\n stroke: lineColor,\r\n },\r\n whileInView: {\r\n d: lineShape(dataWithId) as string,\r\n opacity: 1,\r\n stroke: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n fill: 'none',\r\n strokeWidth: 2,\r\n }}\r\n />\r\n {dataWithId.map((d, i) => (\r\n <g key={i}>\r\n {!checkIfNullOrUndefined(d.line) ? (\r\n <g\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.circle\r\n exit={{\r\n cy: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n cy: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n cy: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n cx={(x(d.id) as number) + x.bandwidth() / 2}\r\n r={\r\n graphWidth / dataWithId.length < 5\r\n ? 0\r\n : graphWidth / dataWithId.length < 20\r\n ? 2\r\n : 4\r\n }\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n y: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n variants={{\r\n initial: {\r\n y: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n y: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='-5px'\r\n >\r\n {numberFormattingFunction(\r\n d.line,\r\n naLabel,\r\n precision,\r\n linePrefix,\r\n lineSuffix,\r\n locale,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n Languages,\r\n ParetoChartDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ParetoChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color of the bars */\r\n barColor?: string;\r\n /** Color of the line */\r\n lineColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n\r\n // Values and Ticks\r\n /** Suffix for values of the lines */\r\n lineSuffix?: string;\r\n /** Suffix for values of the bars */\r\n barSuffix?: string;\r\n /** Prefix for values of the lines */\r\n linePrefix?: string;\r\n /** Prefix for values of the bars */\r\n barPrefix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Enables same axis for bars and line */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Title for the line axis */\r\n lineAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function ParetoChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n lineColor = Colors.light.categoricalColors.colors[1],\r\n barColor = Colors.light.categoricalColors.colors[0],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n lineAxisTitle = 'Line chart',\r\n barAxisTitle = 'Bar graph',\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n barPadding = 0.25,\r\n truncateBy = 999,\r\n showLabels = true,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n showValues = true,\r\n noOfTicks = 5,\r\n lineSuffix = '',\r\n barSuffix = '',\r\n linePrefix = '',\r\n barPrefix = '',\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showColorScale = true,\r\n showAxisLabels = true,\r\n locale = 'en',\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {!showColorScale && data.length > 0 ? null : (\r\n <ColorLegend\r\n colorDomain={[barAxisTitle, lineAxisTitle]}\r\n colors={[\r\n barColor || Colors[theme].categoricalColors.colors[0],\r\n lineColor || Colors[theme].categoricalColors.colors[1],\r\n ]}\r\n colorLegendTitle={colorLegendTitle}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColor={lineColor}\r\n barColor={barColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n truncateBy={truncateBy}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n axisTitles={[barAxisTitle, lineAxisTitle]}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n barPadding={barPadding}\r\n showLabels={showLabels}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n noOfTicks={noOfTicks}\r\n lineSuffix={lineSuffix}\r\n barSuffix={barSuffix}\r\n linePrefix={linePrefix}\r\n barPrefix={barPrefix}\r\n curveType={curveType}\r\n showValues={showValues}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showAxisLabels={showAxisLabels}\r\n locale={locale}\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","barColor","lineColor","axisTitles","sameAxes","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","showValues","onSeriesMouseOver","barPadding","truncateBy","showLabels","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","noOfTicks","lineSuffix","barSuffix","linePrefix","barPrefix","curveType","styles","classNames","animate","precision","customLayers","naLabel","showAxisLabels","locale","svgRef","useRef","t0","amount","once","isInView","useInView","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","t2","t3","top","bottom","left","right","margin","graphWidth","graphHeight","T0","T1","t10","t11","t12","t13","t14","t15","t16","t4","t5","t6","t7","t8","t9","graphObjectValues","xAxis","axis","labels","yAxis","gridLines","title","dataWithId","map","_temp","x","scaleBand","domain","_temp2","range","paddingInner","minParam1","Math","min","_temp3","filter","_temp4","Infinity","_temp5","_temp6","_temp7","_temp8","minParam2","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","maxParam1","max","_temp13","_temp14","_temp15","_temp16","maxParam2","_temp17","_temp18","_temp19","_temp20","minParam","maxParam","y1","scaleLinear","nice","y2","lineShape","line","defined","_temp21","d_22","d","id","bandwidth","y","d_23","y1Ticks","ticks","y2Ticks","motion","svg","t17","t18","t19","t20","stroke","t21","jsx","Axis","t22","AxisTitle","fill","length","substring","d_24","i_0","strokeWidth","cn","textAnchor","numberFormattingFunction","i","t23","t24","t25","t26","t27","t28","t29","t30","d_25","i_1","t31","t32","t33","t34","_temp22","_temp23","AnimatePresence","d_28","i_2","jsxs","event","clientY","clientX","isEqual","event_0","initial","attrY","opacity","whileInView","bar","abs","transition","duration","checkIfNullOrUndefined","XAxesLabels","label","t35","t36","Symbol","for","_temp24","d_30","i_3","event_1","event_2","cy","_temp25","_temp26","Tooltip","modal","DetailsModal","Fragment","d_32","layer","d_31","position","d_29","d_27","d_26","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","d_0","ParetoChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","lineAxisTitle","barAxisTitle","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","graphContainer","t37","t38","description","GraphHeader","t39","colorLegend","ColorLegend","t40","EmptyState","t41","t42","GraphArea","t43","footnote","source","GraphFooter","t44","GraphContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ParetoChart.js","sources":["../src/Components/Graphs/ParetoChart/Graph.tsx","../src/Components/Graphs/ParetoChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleBand, scaleLinear } from 'd3-scale';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n NumberFormatOptions,\r\n ParetoChartDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: ParetoChartDataType[];\r\n barColor: string;\r\n lineColor: string;\r\n axisTitles: [string, string];\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n barPadding: number;\r\n truncateBy: number;\r\n showLabels: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n noOfTicks: number;\r\n showValues: boolean;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n naLabel: string;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n lineNumberDisplayOptions?: NumberFormatOptions;\r\n barNumberDisplayOptions?: NumberFormatOptions;\r\n}\r\ninterface DataFormattedType {\r\n id: string;\r\n label: number | string;\r\n line?: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n barColor,\r\n lineColor,\r\n axisTitles,\r\n sameAxes,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n showValues,\r\n onSeriesMouseOver,\r\n barPadding,\r\n truncateBy,\r\n showLabels,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n curveType,\r\n styles,\r\n classNames,\r\n animate,\r\n customLayers,\r\n naLabel,\r\n showAxisLabels,\r\n lineNumberDisplayOptions,\r\n barNumberDisplayOptions,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin + 50,\r\n right: rightMargin + 65,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataWithId = data.map((d, i) => ({ ...d, id: `${i}` }));\r\n const x = scaleBand()\r\n .domain(dataWithId.map(d => `${d.id}`))\r\n .range([0, graphWidth])\r\n .paddingInner(barPadding);\r\n const minParam1 =\r\n Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.bar).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null)) !== Infinity\r\n ? Math.max(...dataWithId.map(d => d.line).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape = line<DataFormattedType>()\r\n .defined(d => !checkIfNullOrUndefined(d.line))\r\n .x(d => (x(`${d.id}`) as number) + x.bandwidth() / 2)\r\n .y(d => y2(d.line as number))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfTicks);\r\n const y2Ticks = y2.ticks(noOfTicks);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: barColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: barColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n d,\r\n naLabel,\r\n barNumberDisplayOptions?.precision ?? 2,\r\n barNumberDisplayOptions?.prefix,\r\n barNumberDisplayOptions?.suffix,\r\n barNumberDisplayOptions?.locale,\r\n barNumberDisplayOptions?.padZeros,\r\n )}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: barColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: barColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[0].length > 100\r\n ? `${axisTitles[0].substring(0, 100)}...`\r\n : axisTitles[0]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColor,\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColor,\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(\r\n d,\r\n naLabel,\r\n lineNumberDisplayOptions?.precision ?? 2,\r\n lineNumberDisplayOptions?.prefix,\r\n lineNumberDisplayOptions?.suffix,\r\n lineNumberDisplayOptions?.locale,\r\n lineNumberDisplayOptions?.padZeros,\r\n )}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColor, ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColor, ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={\r\n axisTitles[1].length > 100\r\n ? `${axisTitles[1].substring(0, 100)}...`\r\n : axisTitles[1]\r\n }\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <Axis\r\n y1={sameAxes ? y1(0) : graphHeight}\r\n y2={sameAxes ? y1(0) : graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <AnimatePresence>\r\n {dataWithId.map((d, i) => {\r\n return (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={0.85}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.rect\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 1,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: d.bar ? (d.bar > 0 ? y1(d.bar) : y1(0)) : 0,\r\n height: d.bar ? Math.abs(y1(d.bar) - y1(0)) : 0,\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{\r\n attrY: y1(0),\r\n height: 0,\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n x={x(`${i}`)}\r\n width={x.bandwidth()}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.bar) ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n attrY: y1(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n attrY: y1(0),\r\n opacity: 0,\r\n fill: barColor,\r\n },\r\n whileInView: {\r\n attrY: y1(d.bar || 0),\r\n opacity: 1,\r\n fill: barColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy={d.bar ? (d.bar >= 0 ? '-5px' : '1em') : '-5px'}\r\n >\r\n {numberFormattingFunction(\r\n d.bar,\r\n naLabel,\r\n barNumberDisplayOptions?.precision ?? 2,\r\n barNumberDisplayOptions?.prefix,\r\n barNumberDisplayOptions?.suffix,\r\n barNumberDisplayOptions?.locale,\r\n barNumberDisplayOptions?.padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n {showLabels ? (\r\n <XAxesLabels\r\n value={\r\n `${d.label}`.length < truncateBy\r\n ? `${d.label}`\r\n : `${`${d.label}`.substring(0, truncateBy)}...`\r\n }\r\n y={graphHeight + 5}\r\n x={x(`${d.id}`) as number}\r\n width={x.bandwidth()}\r\n height={margin.bottom}\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='top'\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ) : null}\r\n </motion.g>\r\n );\r\n })}\r\n <motion.path\r\n exit={{\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n d: lineShape(dataWithId.map(d => ({ ...d, line: 0 }))) as string,\r\n opacity: 0,\r\n stroke: lineColor,\r\n },\r\n whileInView: {\r\n d: lineShape(dataWithId) as string,\r\n opacity: 1,\r\n stroke: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n style={{\r\n fill: 'none',\r\n strokeWidth: 2,\r\n }}\r\n />\r\n {dataWithId.map((d, i) => (\r\n <g key={i}>\r\n {!checkIfNullOrUndefined(d.line) ? (\r\n <g\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <motion.circle\r\n exit={{\r\n cy: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n variants={{\r\n initial: {\r\n cy: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n cy: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n cx={(x(d.id) as number) + x.bandwidth() / 2}\r\n r={\r\n graphWidth / dataWithId.length < 5\r\n ? 0\r\n : graphWidth / dataWithId.length < 20\r\n ? 2\r\n : 4\r\n }\r\n />\r\n {showValues ? (\r\n <motion.text\r\n x={(x(`${d.id}`) as number) + x.bandwidth() / 2}\r\n exit={{\r\n y: y2(0),\r\n opacity: 0,\r\n transition: { duration: animate.duration },\r\n }}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n variants={{\r\n initial: {\r\n y: y2(0),\r\n opacity: 0,\r\n fill: lineColor,\r\n },\r\n whileInView: {\r\n y: y2(d.line as number),\r\n opacity: 1,\r\n fill: lineColor,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={cn('graph-value text-sm', classNames?.graphObjectValues)}\r\n dy='-5px'\r\n >\r\n {numberFormattingFunction(\r\n d.line,\r\n naLabel,\r\n lineNumberDisplayOptions?.precision ?? 2,\r\n lineNumberDisplayOptions?.prefix,\r\n lineNumberDisplayOptions?.suffix,\r\n lineNumberDisplayOptions?.locale,\r\n lineNumberDisplayOptions?.padZeros,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n </AnimatePresence>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n Languages,\r\n ParetoChartDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ParetoChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color of the bars */\r\n barColor?: string;\r\n /** Color of the line */\r\n lineColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Padding between bars */\r\n barPadding?: number;\r\n\r\n // Values and Ticks\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Enables same axis for bars and line */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Title for the bar axis */\r\n barAxisTitle?: string;\r\n /** Title for the line axis */\r\n lineAxisTitle?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Configuration options for lines controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n lineNumberDisplayOptions?: NumberFormatOptions;\r\n /** Configuration options for bars controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n barNumberDisplayOptions?: NumberFormatOptions;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function ParetoChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n lineColor = Colors.light.categoricalColors.colors[1],\r\n barColor = Colors.light.categoricalColors.colors[0],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n lineAxisTitle = 'Line chart',\r\n barAxisTitle = 'Bar graph',\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n barPadding = 0.25,\r\n truncateBy = 999,\r\n showLabels = true,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n showValues = true,\r\n noOfTicks = 5,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n animate = false,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showColorScale = true,\r\n showAxisLabels = true,\r\n lineNumberDisplayOptions,\r\n barNumberDisplayOptions,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {!showColorScale && data.length > 0 ? null : (\r\n <ColorLegend\r\n colorDomain={[barAxisTitle, lineAxisTitle]}\r\n colors={[\r\n barColor || Colors[theme].categoricalColors.colors[0],\r\n lineColor || Colors[theme].categoricalColors.colors[1],\r\n ]}\r\n colorLegendTitle={colorLegendTitle}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColor={lineColor}\r\n barColor={barColor}\r\n width={svgWidth}\r\n height={svgHeight}\r\n truncateBy={truncateBy}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n axisTitles={[barAxisTitle, lineAxisTitle]}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n barPadding={barPadding}\r\n showLabels={showLabels}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n noOfTicks={noOfTicks}\r\n curveType={curveType}\r\n showValues={showValues}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showAxisLabels={showAxisLabels}\r\n lineNumberDisplayOptions={lineNumberDisplayOptions}\r\n barNumberDisplayOptions={barNumberDisplayOptions}\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","barColor","lineColor","axisTitles","sameAxes","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","showValues","onSeriesMouseOver","barPadding","truncateBy","showLabels","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","noOfTicks","curveType","styles","classNames","animate","customLayers","naLabel","showAxisLabels","lineNumberDisplayOptions","barNumberDisplayOptions","svgRef","useRef","t0","amount","once","isInView","useInView","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","t2","t3","top","bottom","left","right","margin","graphWidth","graphHeight","T0","T1","t10","t11","t12","t13","t14","t15","t16","t4","t5","t6","t7","t8","t9","locale","padZeros","precision","prefix","suffix","graphObjectValues","xAxis","axis","labels","yAxis","gridLines","title","dataWithId","map","_temp","x","scaleBand","domain","_temp2","range","paddingInner","minParam1","Math","min","_temp3","filter","_temp4","Infinity","_temp5","_temp6","_temp7","_temp8","minParam2","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","maxParam1","max","_temp13","_temp14","_temp15","_temp16","maxParam2","_temp17","_temp18","_temp19","_temp20","minParam","maxParam","y1","scaleLinear","nice","y2","lineShape","line","defined","_temp21","d_22","d","id","bandwidth","y","d_23","y1Ticks","ticks","y2Ticks","motion","svg","t17","t18","t19","t20","stroke","t21","jsx","Axis","t22","AxisTitle","fill","length","substring","d_24","i_0","strokeWidth","cn","textAnchor","numberFormattingFunction","i","t23","t24","t25","t26","t27","t28","t29","t30","d_25","i_1","t31","t32","t33","t34","_temp22","_temp23","AnimatePresence","d_28","i_2","jsxs","event","clientY","clientX","isEqual","event_0","initial","attrY","opacity","whileInView","bar","abs","transition","duration","checkIfNullOrUndefined","XAxesLabels","label","t35","t36","Symbol","for","_temp24","d_30","i_3","event_1","event_2","cy","_temp25","_temp26","Tooltip","modal","DetailsModal","Fragment","d_32","layer","d_31","position","d_29","d_27","d_26","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","d_0","ParetoChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","lineAxisTitle","barAxisTitle","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","graphContainer","description","GraphHeader","colorLegend","ColorLegend","EmptyState","GraphArea","t37","footnote","source","GraphFooter","t38","GraphContainer"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FeatureCollection } from 'geojson';
|
|
2
2
|
import { JSX } from 'react/jsx-runtime';
|
|
3
|
+
import { ReactElement } from 'react';
|
|
3
4
|
|
|
4
5
|
declare interface AdvancedDataSelectionDataType {
|
|
5
6
|
label?: string;
|
|
@@ -186,6 +187,9 @@ declare interface DataTableColumnDataType {
|
|
|
186
187
|
align?: 'left' | 'right' | 'center';
|
|
187
188
|
suffix?: string;
|
|
188
189
|
prefix?: string;
|
|
190
|
+
locale?: string;
|
|
191
|
+
precision?: number;
|
|
192
|
+
padZeros?: boolean;
|
|
189
193
|
columnWidth?: number;
|
|
190
194
|
}
|
|
191
195
|
|
|
@@ -242,8 +246,6 @@ declare interface GraphSettingsDataType {
|
|
|
242
246
|
footNote?: string | React.ReactNode;
|
|
243
247
|
height?: number;
|
|
244
248
|
width?: number;
|
|
245
|
-
suffix?: string;
|
|
246
|
-
prefix?: string;
|
|
247
249
|
sources?: SourcesDataType[];
|
|
248
250
|
barPadding?: number;
|
|
249
251
|
showTicks?: boolean;
|
|
@@ -273,7 +275,14 @@ declare interface GraphSettingsDataType {
|
|
|
273
275
|
barColors?: [string, string];
|
|
274
276
|
centerGap?: number;
|
|
275
277
|
columnData?: DataTableColumnDataType[];
|
|
276
|
-
mainText?: string
|
|
278
|
+
mainText?: string | {
|
|
279
|
+
label: string;
|
|
280
|
+
suffix?: string;
|
|
281
|
+
prefix?: string;
|
|
282
|
+
locale?: string;
|
|
283
|
+
padZeros?: boolean;
|
|
284
|
+
precision?: number;
|
|
285
|
+
} | ReactElement;
|
|
277
286
|
subNote?: string;
|
|
278
287
|
radius?: number;
|
|
279
288
|
strokeWidth?: number;
|
|
@@ -429,16 +438,6 @@ declare interface GraphSettingsDataType {
|
|
|
429
438
|
colorLegendColors?: string[];
|
|
430
439
|
colorLegendDomain?: string[];
|
|
431
440
|
barAxisTitle?: string;
|
|
432
|
-
barSuffix?: string;
|
|
433
|
-
barPrefix?: string;
|
|
434
|
-
lineSuffix?: string;
|
|
435
|
-
linePrefix?: string;
|
|
436
|
-
xSuffix?: string;
|
|
437
|
-
xPrefix?: string;
|
|
438
|
-
ySuffix?: string;
|
|
439
|
-
yPrefix?: string;
|
|
440
|
-
lineSuffixes?: [string, string];
|
|
441
|
-
linePrefixes?: [string, string];
|
|
442
441
|
allowDataDownloadOnDetail?: string | boolean;
|
|
443
442
|
noOfItemsInAPage?: number;
|
|
444
443
|
curveType?: CurveTypes;
|
|
@@ -458,7 +457,6 @@ declare interface GraphSettingsDataType {
|
|
|
458
457
|
measureBarWidthFactor?: number;
|
|
459
458
|
mapLegend?: string | React.ReactNode | MapLegendDataType[];
|
|
460
459
|
dimmedOpacity?: number;
|
|
461
|
-
precision?: number;
|
|
462
460
|
customLayers?: CustomLayerDataType[];
|
|
463
461
|
dashedLines?: (string | number)[];
|
|
464
462
|
dashSettings?: string[];
|
|
@@ -495,7 +493,14 @@ declare interface GraphSettingsDataType {
|
|
|
495
493
|
showVoronoiTesselation?: boolean;
|
|
496
494
|
mapOverlay?: MapOverlayDataType;
|
|
497
495
|
useVoronoiInteraction?: boolean;
|
|
498
|
-
|
|
496
|
+
numberDisplayOptions?: NumberFormatOptions;
|
|
497
|
+
leftLineNumberDisplayOptions?: NumberFormatOptions;
|
|
498
|
+
rightLineNumberDisplayOptions?: NumberFormatOptions;
|
|
499
|
+
barNumberDisplayOptions?: NumberFormatOptions;
|
|
500
|
+
lineNumberDisplayOptions?: NumberFormatOptions;
|
|
501
|
+
xNumberDisplayOptions?: NumberFormatOptions;
|
|
502
|
+
yNumberDisplayOptions?: NumberFormatOptions;
|
|
503
|
+
defaultColor?: string;
|
|
499
504
|
}
|
|
500
505
|
|
|
501
506
|
declare type GraphType = GraphTypeForGriddedGraph;
|
|
@@ -518,7 +523,7 @@ declare interface HighlightAreaSettingsForScatterPlotDataType {
|
|
|
518
523
|
strokeWidth?: number;
|
|
519
524
|
}
|
|
520
525
|
|
|
521
|
-
declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | '
|
|
526
|
+
declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | 'ja' | 'ka' | 'km' | 'ko' | 'my' | 'ne' | 'zh' | 'custom';
|
|
522
527
|
|
|
523
528
|
declare type LightConfig = AmbientLightConfig | DirectionalLightConfig | PointLightConfig | SpotLightConfig;
|
|
524
529
|
|
|
@@ -535,6 +540,14 @@ declare interface MapOverlayDataType {
|
|
|
535
540
|
|
|
536
541
|
declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
|
|
537
542
|
|
|
543
|
+
declare interface NumberFormatOptions {
|
|
544
|
+
locale?: string;
|
|
545
|
+
precision?: number;
|
|
546
|
+
prefix?: string;
|
|
547
|
+
suffix?: string;
|
|
548
|
+
padZeros?: boolean;
|
|
549
|
+
}
|
|
550
|
+
|
|
538
551
|
declare interface PerformanceIntensiveDashboardColumnDataType extends DashboardColumnDataWithoutGraphType {
|
|
539
552
|
graphType: GraphType | ThreeDGraphType | GeoHubGraphType;
|
|
540
553
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FeatureCollection } from 'geojson';
|
|
2
2
|
import { JSX } from 'react/jsx-runtime';
|
|
3
|
+
import { ReactElement } from 'react';
|
|
3
4
|
|
|
4
5
|
declare interface AdvancedDataSelectionDataType {
|
|
5
6
|
label?: string;
|
|
@@ -205,6 +206,9 @@ declare interface DataTableColumnDataType {
|
|
|
205
206
|
align?: 'left' | 'right' | 'center';
|
|
206
207
|
suffix?: string;
|
|
207
208
|
prefix?: string;
|
|
209
|
+
locale?: string;
|
|
210
|
+
precision?: number;
|
|
211
|
+
padZeros?: boolean;
|
|
208
212
|
columnWidth?: number;
|
|
209
213
|
}
|
|
210
214
|
|
|
@@ -261,8 +265,6 @@ declare interface GraphSettingsDataType {
|
|
|
261
265
|
footNote?: string | React.ReactNode;
|
|
262
266
|
height?: number;
|
|
263
267
|
width?: number;
|
|
264
|
-
suffix?: string;
|
|
265
|
-
prefix?: string;
|
|
266
268
|
sources?: SourcesDataType[];
|
|
267
269
|
barPadding?: number;
|
|
268
270
|
showTicks?: boolean;
|
|
@@ -292,7 +294,14 @@ declare interface GraphSettingsDataType {
|
|
|
292
294
|
barColors?: [string, string];
|
|
293
295
|
centerGap?: number;
|
|
294
296
|
columnData?: DataTableColumnDataType[];
|
|
295
|
-
mainText?: string
|
|
297
|
+
mainText?: string | {
|
|
298
|
+
label: string;
|
|
299
|
+
suffix?: string;
|
|
300
|
+
prefix?: string;
|
|
301
|
+
locale?: string;
|
|
302
|
+
padZeros?: boolean;
|
|
303
|
+
precision?: number;
|
|
304
|
+
} | ReactElement;
|
|
296
305
|
subNote?: string;
|
|
297
306
|
radius?: number;
|
|
298
307
|
strokeWidth?: number;
|
|
@@ -448,16 +457,6 @@ declare interface GraphSettingsDataType {
|
|
|
448
457
|
colorLegendColors?: string[];
|
|
449
458
|
colorLegendDomain?: string[];
|
|
450
459
|
barAxisTitle?: string;
|
|
451
|
-
barSuffix?: string;
|
|
452
|
-
barPrefix?: string;
|
|
453
|
-
lineSuffix?: string;
|
|
454
|
-
linePrefix?: string;
|
|
455
|
-
xSuffix?: string;
|
|
456
|
-
xPrefix?: string;
|
|
457
|
-
ySuffix?: string;
|
|
458
|
-
yPrefix?: string;
|
|
459
|
-
lineSuffixes?: [string, string];
|
|
460
|
-
linePrefixes?: [string, string];
|
|
461
460
|
allowDataDownloadOnDetail?: string | boolean;
|
|
462
461
|
noOfItemsInAPage?: number;
|
|
463
462
|
curveType?: CurveTypes;
|
|
@@ -477,7 +476,6 @@ declare interface GraphSettingsDataType {
|
|
|
477
476
|
measureBarWidthFactor?: number;
|
|
478
477
|
mapLegend?: string | React.ReactNode | MapLegendDataType[];
|
|
479
478
|
dimmedOpacity?: number;
|
|
480
|
-
precision?: number;
|
|
481
479
|
customLayers?: CustomLayerDataType[];
|
|
482
480
|
dashedLines?: (string | number)[];
|
|
483
481
|
dashSettings?: string[];
|
|
@@ -514,7 +512,14 @@ declare interface GraphSettingsDataType {
|
|
|
514
512
|
showVoronoiTesselation?: boolean;
|
|
515
513
|
mapOverlay?: MapOverlayDataType;
|
|
516
514
|
useVoronoiInteraction?: boolean;
|
|
517
|
-
|
|
515
|
+
numberDisplayOptions?: NumberFormatOptions;
|
|
516
|
+
leftLineNumberDisplayOptions?: NumberFormatOptions;
|
|
517
|
+
rightLineNumberDisplayOptions?: NumberFormatOptions;
|
|
518
|
+
barNumberDisplayOptions?: NumberFormatOptions;
|
|
519
|
+
lineNumberDisplayOptions?: NumberFormatOptions;
|
|
520
|
+
xNumberDisplayOptions?: NumberFormatOptions;
|
|
521
|
+
yNumberDisplayOptions?: NumberFormatOptions;
|
|
522
|
+
defaultColor?: string;
|
|
518
523
|
}
|
|
519
524
|
|
|
520
525
|
declare type GraphType = GraphTypeForGriddedGraph;
|
|
@@ -537,7 +542,7 @@ declare interface HighlightAreaSettingsForScatterPlotDataType {
|
|
|
537
542
|
strokeWidth?: number;
|
|
538
543
|
}
|
|
539
544
|
|
|
540
|
-
declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | '
|
|
545
|
+
declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | 'ja' | 'ka' | 'km' | 'ko' | 'my' | 'ne' | 'zh' | 'custom';
|
|
541
546
|
|
|
542
547
|
declare type LightConfig = AmbientLightConfig | DirectionalLightConfig | PointLightConfig | SpotLightConfig;
|
|
543
548
|
|
|
@@ -554,6 +559,14 @@ declare interface MapOverlayDataType {
|
|
|
554
559
|
|
|
555
560
|
declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
|
|
556
561
|
|
|
562
|
+
declare interface NumberFormatOptions {
|
|
563
|
+
locale?: string;
|
|
564
|
+
precision?: number;
|
|
565
|
+
prefix?: string;
|
|
566
|
+
suffix?: string;
|
|
567
|
+
padZeros?: boolean;
|
|
568
|
+
}
|
|
569
|
+
|
|
557
570
|
declare interface PerformanceIntensiveDashboardColumnDataType extends DashboardColumnDataWithoutGraphType {
|
|
558
571
|
graphType: GraphType | ThreeDGraphType | GeoHubGraphType;
|
|
559
572
|
}
|