@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/UnitChart.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitChart.cjs","sources":["../src/Components/Graphs/UnitChart/index.tsx"],"sourcesContent":["import { useRef } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { H2, P } from '@undp/design-system-react/Typography';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport {\r\n UnitChartDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\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: UnitChartDataType[];\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 /** Note with h2 tag just above the graph. Can be used to highlight text */\r\n note?: string;\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 /** Colors of the highlighted circles */\r\n colors?: 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\r\n // Graph Parameters\r\n /** Size of the visualization */\r\n size?: number;\r\n /** No. of dots in a single row */\r\n gridSize?: number;\r\n /** Spacing between 2 dots */\r\n unitPadding?: number;\r\n /** Total no. of dot that are rendered in the chart */\r\n totalNoOfDots?: number;\r\n /** Toggle visibility of stroke for the unfilled dots */\r\n showStrokeForWhiteDots?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Toggle visibility of color scale */\r\n showColorScale?: boolean;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\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 /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\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 UnitChart(props: Props) {\r\n const {\r\n data,\r\n size = 200,\r\n graphTitle,\r\n sources,\r\n colors = Colors.light.categoricalColors.colors,\r\n graphDescription,\r\n totalNoOfDots = 100,\r\n unitPadding = 3,\r\n gridSize = 10,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n graphDownload = false,\r\n language = 'en',\r\n showColorScale = true,\r\n showStrokeForWhiteDots = true,\r\n note,\r\n dataDownload = false,\r\n theme = 'light',\r\n width,\r\n height,\r\n minHeight = 0,\r\n relativeHeight,\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n locale,\r\n naLabel = 'NA',\r\n } = props;\r\n const svgRef = useRef(null);\r\n const animateValue =\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 const isInView = useInView(svgRef, {\r\n once: animateValue.once,\r\n amount: animateValue.amount,\r\n });\r\n const totalValue = sum(data.map(d => d.value));\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const gridDimension = size / gridSize;\r\n const radius = (gridDimension - unitPadding * 2) / 2;\r\n if (radius <= 0) {\r\n console.error(\r\n 'The size of single unit is less than or equal to zero. Check values for ((dimension / gridSize) - (padding * 2)) / 2 is not less than or equal to 0.',\r\n );\r\n return null;\r\n }\r\n\r\n const cellsData: { color: string }[] = [];\r\n data.forEach((item, index) => {\r\n const count = Math.round((item.value / totalValue) * totalNoOfDots);\r\n for (let i = 0; i < count; i += 1) {\r\n cellsData.push({ color: colors[index] });\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 ? (\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 {note ? (\r\n <H2\r\n marginBottom='2xs'\r\n className='text-primary-gray-700 dark:text-primary-gray-100 font-bold'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n >\r\n {note}\r\n </H2>\r\n ) : null}\r\n {showColorScale ? (\r\n <div\r\n className='mb-4 leading-0'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n aria-label='Color legend'\r\n >\r\n <div className='flex mb-0 flex-wrap gap-x-4 gap-y-1'>\r\n {data.map((d, i) => (\r\n <div className='flex gap-2 items-center' key={i}>\r\n <div className='w-3 h-3 rounded-full' style={{ backgroundColor: colors[i] }} />\r\n <P\r\n marginBottom='none'\r\n size='sm'\r\n className='text-primary-gray-700 dark:text-primary-gray-100'\r\n >\r\n {d.label}:{' '}\r\n <span className='font-bold'>\r\n {numberFormattingFunction(\r\n d.value,\r\n naLabel,\r\n precision,\r\n undefined,\r\n undefined,\r\n locale || language,\r\n )}\r\n </span>\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n <svg\r\n width={`${width || size}px`}\r\n height={`${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}px`}\r\n ref={svgRef}\r\n direction='ltr'\r\n viewBox={`0 0 ${width || size} ${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}`}\r\n >\r\n <AnimatePresence>\r\n <g>\r\n {cellsData.map((d, i) => (\r\n <motion.circle\r\n key={i}\r\n style={{\r\n strokeWidth: 1,\r\n }}\r\n variants={{\r\n initial: {\r\n fill: '#fff',\r\n opacity: 0,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n },\r\n whileInView: {\r\n fill: d.color,\r\n opacity: 1,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n cx: (i % gridSize) * gridDimension + gridDimension / 2,\r\n cy: Math.floor(i / gridSize) * gridDimension + gridDimension / 2,\r\n transition: {\r\n duration: 0,\r\n delay: (animateValue.duration / cellsData.length) * i,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={\r\n (d.color.toLowerCase() === '#fff' ||\r\n d.color.toLowerCase() === '#ffffff' ||\r\n d.color.toLowerCase() === 'white') &&\r\n showStrokeForWhiteDots\r\n ? 'stroke-primary-gray-400 dark:stroke-primary-gray-500'\r\n : ''\r\n }\r\n r={radius}\r\n />\r\n ))}\r\n </g>\r\n </AnimatePresence>\r\n </svg>\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: styles?.footnote,\r\n source: styles?.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":["UnitChart","props","$","_c","data","size","t0","graphTitle","sources","colors","t1","graphDescription","totalNoOfDots","t2","unitPadding","t3","gridSize","t4","footNote","padding","backgroundColor","t5","graphID","graphDownload","t6","language","t7","showColorScale","t8","showStrokeForWhiteDots","t9","note","dataDownload","t10","theme","t11","width","height","minHeight","t12","relativeHeight","ariaLabel","styles","classNames","animate","t13","precision","t14","locale","naLabel","t15","undefined","Colors","light","categoricalColors","svgRef","useRef","t16","duration","once","amount","animateValue","t17","isInView","useInView","t18","sum","map","_temp","totalValue","graphParentDiv","graphDiv","gridDimension","radius","console","error","T0","T1","T2","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","t41","description","graphContainer","title","cellsData","forEach","item","index","count","Math","round","value","i","push","color","GraphContainer","jsx","GraphHeader","_temp2","filter","_temp3","length","_temp4","_temp5","_temp6","H2","d_5","i_0","jsxs","P","d","label","numberFormattingFunction","GraphArea","max","floor","AnimatePresence","d_6","i_1","strokeWidth","initial","fill","opacity","stroke","whileInView","cx","cy","transition","delay","toLowerCase","t42","t43","t44","t45","footnote","source","GraphFooter","t46","d_2","d_1","d_0","d_4","d_3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UnitChart.cjs","sources":["../src/Components/Graphs/UnitChart/index.tsx"],"sourcesContent":["import { useRef } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { H2, P } from '@undp/design-system-react/Typography';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport {\r\n UnitChartDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\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: UnitChartDataType[];\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 /** Note with h2 tag just above the graph. Can be used to highlight text */\r\n note?: string;\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 /** Colors of the highlighted circles */\r\n colors?: 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\r\n // Graph Parameters\r\n /** Size of the visualization */\r\n size?: number;\r\n /** No. of dots in a single row */\r\n gridSize?: number;\r\n /** Spacing between 2 dots */\r\n unitPadding?: number;\r\n /** Total no. of dot that are rendered in the chart */\r\n totalNoOfDots?: number;\r\n /** Toggle visibility of stroke for the unfilled dots */\r\n showStrokeForWhiteDots?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Toggle visibility of color scale */\r\n showColorScale?: boolean;\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 /** 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 // 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 UnitChart(props: Props) {\r\n const {\r\n data,\r\n size = 200,\r\n graphTitle,\r\n sources,\r\n colors = Colors.light.categoricalColors.colors,\r\n graphDescription,\r\n totalNoOfDots = 100,\r\n unitPadding = 3,\r\n gridSize = 10,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n graphDownload = false,\r\n language = 'en',\r\n showColorScale = true,\r\n showStrokeForWhiteDots = true,\r\n note,\r\n dataDownload = false,\r\n theme = 'light',\r\n width,\r\n height,\r\n minHeight = 0,\r\n relativeHeight,\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n animate = false,\r\n naLabel = 'NA',\r\n numberDisplayOptions,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const animateValue =\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 const isInView = useInView(svgRef, {\r\n once: animateValue.once,\r\n amount: animateValue.amount,\r\n });\r\n const totalValue = sum(data.map(d => d.value));\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const gridDimension = size / gridSize;\r\n const radius = (gridDimension - unitPadding * 2) / 2;\r\n if (radius <= 0) {\r\n console.error(\r\n 'The size of single unit is less than or equal to zero. Check values for ((dimension / gridSize) - (padding * 2)) / 2 is not less than or equal to 0.',\r\n );\r\n return null;\r\n }\r\n\r\n const cellsData: { color: string }[] = [];\r\n data.forEach((item, index) => {\r\n const count = Math.round((item.value / totalValue) * totalNoOfDots);\r\n for (let i = 0; i < count; i += 1) {\r\n cellsData.push({ color: colors[index] });\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 ? (\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 {note ? (\r\n <H2\r\n marginBottom='2xs'\r\n className='text-primary-gray-700 dark:text-primary-gray-100 font-bold'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n >\r\n {note}\r\n </H2>\r\n ) : null}\r\n {showColorScale ? (\r\n <div\r\n className='mb-4 leading-0'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n aria-label='Color legend'\r\n >\r\n <div className='flex mb-0 flex-wrap gap-x-4 gap-y-1'>\r\n {data.map((d, i) => (\r\n <div className='flex gap-2 items-center' key={i}>\r\n <div className='w-3 h-3 rounded-full' style={{ backgroundColor: colors[i] }} />\r\n <P\r\n marginBottom='none'\r\n size='sm'\r\n className='text-primary-gray-700 dark:text-primary-gray-100'\r\n >\r\n {d.label}:{' '}\r\n <span className='font-bold'>\r\n {numberFormattingFunction(\r\n d.value,\r\n naLabel,\r\n numberDisplayOptions?.precision ?? 2,\r\n numberDisplayOptions?.prefix,\r\n numberDisplayOptions?.suffix,\r\n numberDisplayOptions?.locale || 'en',\r\n numberDisplayOptions?.padZeros || false,\r\n )}\r\n </span>\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n <svg\r\n width={`${width || size}px`}\r\n height={`${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}px`}\r\n ref={svgRef}\r\n direction='ltr'\r\n viewBox={`0 0 ${width || size} ${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}`}\r\n >\r\n <AnimatePresence>\r\n <g>\r\n {cellsData.map((d, i) => (\r\n <motion.circle\r\n key={i}\r\n style={{\r\n strokeWidth: 1,\r\n }}\r\n variants={{\r\n initial: {\r\n fill: '#fff',\r\n opacity: 0,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n },\r\n whileInView: {\r\n fill: d.color,\r\n opacity: 1,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n cx: (i % gridSize) * gridDimension + gridDimension / 2,\r\n cy: Math.floor(i / gridSize) * gridDimension + gridDimension / 2,\r\n transition: {\r\n duration: 0,\r\n delay: (animateValue.duration / cellsData.length) * i,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={\r\n (d.color.toLowerCase() === '#fff' ||\r\n d.color.toLowerCase() === '#ffffff' ||\r\n d.color.toLowerCase() === 'white') &&\r\n showStrokeForWhiteDots\r\n ? 'stroke-primary-gray-400 dark:stroke-primary-gray-500'\r\n : ''\r\n }\r\n r={radius}\r\n />\r\n ))}\r\n </g>\r\n </AnimatePresence>\r\n </svg>\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: styles?.footnote,\r\n source: styles?.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":["UnitChart","props","$","_c","data","size","t0","graphTitle","sources","colors","t1","graphDescription","totalNoOfDots","t2","unitPadding","t3","gridSize","t4","footNote","padding","backgroundColor","t5","graphID","graphDownload","t6","language","t7","showColorScale","t8","showStrokeForWhiteDots","t9","note","dataDownload","t10","theme","t11","width","height","minHeight","t12","relativeHeight","ariaLabel","styles","classNames","animate","t13","naLabel","t14","numberDisplayOptions","undefined","Colors","light","categoricalColors","svgRef","useRef","t15","duration","once","amount","animateValue","t16","isInView","useInView","t17","sum","map","_temp","totalValue","graphParentDiv","graphDiv","gridDimension","radius","console","error","T0","T1","T2","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","description","graphContainer","title","locale","padZeros","precision","prefix","suffix","cellsData","forEach","item","index","count","Math","round","value","i","push","color","GraphContainer","jsx","GraphHeader","_temp2","filter","_temp3","length","_temp4","_temp5","_temp6","H2","d_5","i_0","jsxs","P","d","label","numberFormattingFunction","GraphArea","max","floor","AnimatePresence","d_6","i_1","strokeWidth","initial","fill","opacity","stroke","whileInView","cx","cy","transition","delay","toLowerCase","t41","t42","t43","t44","footnote","source","GraphFooter","t45","d_2","d_1","d_0","d_4","d_3"],"mappings":"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"}
|
package/dist/UnitChart.d.ts
CHANGED
|
@@ -39,7 +39,15 @@ declare interface ClassNameObject {
|
|
|
39
39
|
modal?: string;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | '
|
|
42
|
+
declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | 'ja' | 'ka' | 'km' | 'ko' | 'my' | 'ne' | 'zh' | 'custom';
|
|
43
|
+
|
|
44
|
+
declare interface NumberFormatOptions {
|
|
45
|
+
locale?: string;
|
|
46
|
+
precision?: number;
|
|
47
|
+
prefix?: string;
|
|
48
|
+
suffix?: string;
|
|
49
|
+
padZeros?: boolean;
|
|
50
|
+
}
|
|
43
51
|
|
|
44
52
|
declare interface Props {
|
|
45
53
|
/** Array of data objects */
|
|
@@ -88,16 +96,14 @@ declare interface Props {
|
|
|
88
96
|
animate?: boolean | AnimateDataType;
|
|
89
97
|
/** Toggle visibility of color scale */
|
|
90
98
|
showColorScale?: boolean;
|
|
91
|
-
/**
|
|
92
|
-
|
|
99
|
+
/** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */
|
|
100
|
+
numberDisplayOptions?: NumberFormatOptions;
|
|
93
101
|
/** Defines how “NA” values should be displayed/labelled in the graph */
|
|
94
102
|
naLabel?: string;
|
|
95
103
|
/** Enable graph download option as png */
|
|
96
104
|
graphDownload?: boolean;
|
|
97
105
|
/** Enable data download option as a csv */
|
|
98
106
|
dataDownload?: boolean;
|
|
99
|
-
/** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */
|
|
100
|
-
locale?: string;
|
|
101
107
|
/** Language setting */
|
|
102
108
|
language?: Languages;
|
|
103
109
|
/** Color theme */
|
package/dist/UnitChart.js
CHANGED
|
@@ -1,167 +1,166 @@
|
|
|
1
|
-
import { c as
|
|
2
|
-
import { useRef as
|
|
3
|
-
import { s as
|
|
4
|
-
import { _ as
|
|
5
|
-
import { GraphFooter as
|
|
6
|
-
import { GraphHeader as
|
|
7
|
-
import { Colors as
|
|
8
|
-
import { n as
|
|
9
|
-
import { G as
|
|
10
|
-
import { m as
|
|
11
|
-
import { u as
|
|
12
|
-
import { A as
|
|
13
|
-
function
|
|
14
|
-
const t =
|
|
15
|
-
data:
|
|
16
|
-
size:
|
|
17
|
-
graphTitle:
|
|
18
|
-
sources:
|
|
19
|
-
colors:
|
|
20
|
-
graphDescription:
|
|
21
|
-
totalNoOfDots:
|
|
22
|
-
unitPadding:
|
|
23
|
-
gridSize:
|
|
24
|
-
footNote:
|
|
25
|
-
padding:
|
|
26
|
-
backgroundColor:
|
|
27
|
-
graphID:
|
|
28
|
-
graphDownload:
|
|
29
|
-
language:
|
|
30
|
-
showColorScale:
|
|
31
|
-
showStrokeForWhiteDots:
|
|
32
|
-
note:
|
|
33
|
-
dataDownload:
|
|
34
|
-
theme:
|
|
1
|
+
import { c as Pt, j as r } from "./index-CHPV5EwG-BzibaIRc.js";
|
|
2
|
+
import { useRef as Ct } from "react";
|
|
3
|
+
import { s as Rt } from "./index-CeVNqhMO.js";
|
|
4
|
+
import { _ as Bt, E as Ot } from "./Typography-BO0gQDIT.js";
|
|
5
|
+
import { GraphFooter as qt } from "./GraphFooter.js";
|
|
6
|
+
import { GraphHeader as Ut } from "./GraphHeader.js";
|
|
7
|
+
import { Colors as Jt } from "./Colors.js";
|
|
8
|
+
import { n as Kt } from "./numberFormattingFunction-BUUV_luR.js";
|
|
9
|
+
import { G as Qt, a as Xt } from "./GraphContainer-B8ZqOzKI.js";
|
|
10
|
+
import { m as Yt } from "./proxy-BsxtcZKa.js";
|
|
11
|
+
import { u as _t } from "./use-in-view-KOXq5Kmc.js";
|
|
12
|
+
import { A as te } from "./index-Cv_5q6Rb.js";
|
|
13
|
+
function we(l) {
|
|
14
|
+
const t = Pt.c(137), {
|
|
15
|
+
data: a,
|
|
16
|
+
size: jt,
|
|
17
|
+
graphTitle: w,
|
|
18
|
+
sources: rt,
|
|
19
|
+
colors: kt,
|
|
20
|
+
graphDescription: y,
|
|
21
|
+
totalNoOfDots: Dt,
|
|
22
|
+
unitPadding: bt,
|
|
23
|
+
gridSize: Nt,
|
|
24
|
+
footNote: at,
|
|
25
|
+
padding: ft,
|
|
26
|
+
backgroundColor: zt,
|
|
27
|
+
graphID: mt,
|
|
28
|
+
graphDownload: St,
|
|
29
|
+
language: $t,
|
|
30
|
+
showColorScale: Ht,
|
|
31
|
+
showStrokeForWhiteDots: Lt,
|
|
32
|
+
note: C,
|
|
33
|
+
dataDownload: Mt,
|
|
34
|
+
theme: Vt,
|
|
35
35
|
width: e,
|
|
36
|
-
height:
|
|
37
|
-
minHeight:
|
|
38
|
-
relativeHeight:
|
|
39
|
-
ariaLabel:
|
|
40
|
-
styles:
|
|
41
|
-
classNames:
|
|
42
|
-
animate:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
t[0] !== st ? (ct = st === !0 ? {
|
|
36
|
+
height: x,
|
|
37
|
+
minHeight: Ft,
|
|
38
|
+
relativeHeight: s,
|
|
39
|
+
ariaLabel: ut,
|
|
40
|
+
styles: i,
|
|
41
|
+
classNames: n,
|
|
42
|
+
animate: Gt,
|
|
43
|
+
naLabel: It,
|
|
44
|
+
numberDisplayOptions: o
|
|
45
|
+
} = l, Y = jt === void 0 ? 200 : jt, j = kt === void 0 ? Jt.light.categoricalColors.colors : kt, _ = Dt === void 0 ? 100 : Dt, Zt = bt === void 0 ? 3 : bt, v = Nt === void 0 ? 10 : Nt, ht = zt === void 0 ? !1 : zt, k = St === void 0 ? !1 : St, gt = $t === void 0 ? "en" : $t, tt = Ht === void 0 ? !0 : Ht, et = Lt === void 0 ? !0 : Lt, ot = Mt === void 0 ? !1 : Mt, xt = Vt === void 0 ? "light" : Vt, c = Ft === void 0 ? 0 : Ft, lt = Gt === void 0 ? !1 : Gt, it = It === void 0 ? "NA" : It, Tt = Ct(null);
|
|
46
|
+
let nt;
|
|
47
|
+
t[0] !== lt ? (nt = lt === !0 ? {
|
|
49
48
|
duration: 0.5,
|
|
50
49
|
once: !0,
|
|
51
50
|
amount: 0.5
|
|
52
|
-
} :
|
|
51
|
+
} : lt || {
|
|
53
52
|
duration: 0,
|
|
54
53
|
once: !0,
|
|
55
54
|
amount: 0
|
|
56
|
-
}, t[0] =
|
|
57
|
-
const
|
|
58
|
-
let
|
|
59
|
-
t[2] !==
|
|
60
|
-
once:
|
|
61
|
-
amount:
|
|
62
|
-
}, t[2] =
|
|
63
|
-
const
|
|
64
|
-
let
|
|
65
|
-
t[5] !==
|
|
66
|
-
const
|
|
55
|
+
}, t[0] = lt, t[1] = nt) : nt = t[1];
|
|
56
|
+
const f = nt;
|
|
57
|
+
let st;
|
|
58
|
+
t[2] !== f.amount || t[3] !== f.once ? (st = {
|
|
59
|
+
once: f.once,
|
|
60
|
+
amount: f.amount
|
|
61
|
+
}, t[2] = f.amount, t[3] = f.once, t[4] = st) : st = t[4];
|
|
62
|
+
const vt = _t(Tt, st);
|
|
63
|
+
let ct;
|
|
64
|
+
t[5] !== a ? (ct = Rt(a.map(le)), t[5] = a, t[6] = ct) : ct = t[6];
|
|
65
|
+
const wt = ct, Wt = Ct(null), At = Ct(null), d = Y / v, D = (d - Zt * 2) / 2;
|
|
67
66
|
if (D <= 0)
|
|
68
67
|
return console.error("The size of single unit is less than or equal to zero. Check values for ((dimension / gridSize) - (padding * 2)) / 2 is not less than or equal to 0."), null;
|
|
69
|
-
let b, N, z, S, $, H, L, M, V, F, G, I, T, W, A, E, P, R, B,
|
|
70
|
-
if (t[7] !==
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
const
|
|
74
|
-
for (let
|
|
75
|
-
|
|
76
|
-
color:
|
|
68
|
+
let b, N, z, S, $, H, L, M, V, F, G, I, T, W, Z, A, E, P, R, B, O, q, u, h, g, U;
|
|
69
|
+
if (t[7] !== f.duration || t[8] !== ut || t[9] !== ht || t[10] !== n?.description || t[11] !== n?.graphContainer || t[12] !== n?.title || t[13] !== j || t[14] !== a || t[15] !== ot || t[16] !== y || t[17] !== k || t[18] !== mt || t[19] !== w || t[20] !== d || t[21] !== v || t[22] !== x || t[23] !== vt || t[24] !== gt || t[25] !== c || t[26] !== it || t[27] !== C || t[28] !== o?.locale || t[29] !== o?.padZeros || t[30] !== o?.precision || t[31] !== o?.prefix || t[32] !== o?.suffix || t[33] !== ft || t[34] !== D || t[35] !== s || t[36] !== tt || t[37] !== et || t[38] !== Y || t[39] !== i?.description || t[40] !== i?.graphContainer || t[41] !== i?.title || t[42] !== xt || t[43] !== _ || t[44] !== wt || t[45] !== e) {
|
|
70
|
+
const yt = [];
|
|
71
|
+
a.forEach((p, m) => {
|
|
72
|
+
const Et = Math.round(p.value / wt * _);
|
|
73
|
+
for (let pt = 0; pt < Et; pt = pt + 1, pt)
|
|
74
|
+
yt.push({
|
|
75
|
+
color: j[m]
|
|
77
76
|
});
|
|
78
|
-
}), z =
|
|
79
|
-
title:
|
|
80
|
-
description:
|
|
77
|
+
}), z = Qt, F = n?.graphContainer, G = i?.graphContainer, I = mt, T = Wt, W = ut, Z = ht, A = xt, E = gt, P = c, R = e, B = x, O = s, q = ft, t[72] !== n?.description || t[73] !== n?.title || t[74] !== a || t[75] !== ot || t[76] !== y || t[77] !== k || t[78] !== w || t[79] !== i?.description || t[80] !== i?.title || t[81] !== e ? (u = w || y || k ? /* @__PURE__ */ r.jsx(Ut, { styles: {
|
|
78
|
+
title: i?.title,
|
|
79
|
+
description: i?.description
|
|
81
80
|
}, classNames: {
|
|
82
|
-
title:
|
|
83
|
-
description:
|
|
84
|
-
}, graphTitle:
|
|
81
|
+
title: n?.title,
|
|
82
|
+
description: n?.description
|
|
83
|
+
}, graphTitle: w, graphDescription: y, width: e, graphDownload: k ? Wt : void 0, dataDownload: ot ? a.map(ae).filter(re).length > 0 ? a.map(ie).filter(oe) : a.filter(ee) : null }) : null, t[72] = n?.description, t[73] = n?.title, t[74] = a, t[75] = ot, t[76] = y, t[77] = k, t[78] = w, t[79] = i?.description, t[80] = i?.title, t[81] = e, t[82] = u) : u = t[82], t[83] !== C || t[84] !== e ? (h = C ? /* @__PURE__ */ r.jsx(Ot, { marginBottom: "2xs", className: "text-primary-gray-700 dark:text-primary-gray-100 font-bold", style: {
|
|
85
84
|
width: e ? `${e}px` : "100%"
|
|
86
|
-
}, children:
|
|
85
|
+
}, children: C }) : null, t[83] = C, t[84] = e, t[85] = h) : h = t[85], t[86] !== j || t[87] !== a || t[88] !== it || t[89] !== o?.locale || t[90] !== o?.padZeros || t[91] !== o?.precision || t[92] !== o?.prefix || t[93] !== o?.suffix || t[94] !== tt || t[95] !== e ? (g = tt ? /* @__PURE__ */ r.jsx("div", { className: "mb-4 leading-0", style: {
|
|
87
86
|
width: e ? `${e}px` : "100%"
|
|
88
|
-
}, "aria-label": "Color legend", children: /* @__PURE__ */
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
backgroundColor:
|
|
87
|
+
}, "aria-label": "Color legend", children: /* @__PURE__ */ r.jsx("div", { className: "flex mb-0 flex-wrap gap-x-4 gap-y-1", children: a.map((p, m) => /* @__PURE__ */ r.jsxs("div", { className: "flex gap-2 items-center", children: [
|
|
88
|
+
/* @__PURE__ */ r.jsx("div", { className: "w-3 h-3 rounded-full", style: {
|
|
89
|
+
backgroundColor: j[m]
|
|
91
90
|
} }),
|
|
92
|
-
/* @__PURE__ */
|
|
93
|
-
|
|
91
|
+
/* @__PURE__ */ r.jsxs(Bt, { marginBottom: "none", size: "sm", className: "text-primary-gray-700 dark:text-primary-gray-100", children: [
|
|
92
|
+
p.label,
|
|
94
93
|
":",
|
|
95
94
|
" ",
|
|
96
|
-
/* @__PURE__ */
|
|
95
|
+
/* @__PURE__ */ r.jsx("span", { className: "font-bold", children: Kt(p.value, it, o?.precision ?? 2, o?.prefix, o?.suffix, o?.locale || "en", o?.padZeros || !1) })
|
|
97
96
|
] })
|
|
98
|
-
] },
|
|
97
|
+
] }, m)) }) }) : null, t[86] = j, t[87] = a, t[88] = it, t[89] = o?.locale, t[90] = o?.padZeros, t[91] = o?.precision, t[92] = o?.prefix, t[93] = o?.suffix, t[94] = tt, t[95] = e, t[96] = g) : g = t[96], N = Xt, V = At, S = `${e || Y}px`, $ = `${Math.max(c, x ? s && e ? c ? e * s > c ? e * s : c : e * s : x : Math.floor((_ - 1) / v) * d + d / 2 + D + 5)}px`, H = Tt, L = "ltr", M = `0 0 ${e || Y} ${Math.max(c, x ? s && e ? c ? e * s > c ? e * s : c : e * s : x : Math.floor((_ - 1) / v) * d + d / 2 + D + 5)}`, b = te, U = /* @__PURE__ */ r.jsx("g", { children: yt.map((p, m) => /* @__PURE__ */ r.jsx(Yt.circle, { style: {
|
|
99
98
|
strokeWidth: 1
|
|
100
99
|
}, variants: {
|
|
101
100
|
initial: {
|
|
102
101
|
fill: "#fff",
|
|
103
102
|
opacity: 0,
|
|
104
|
-
...
|
|
105
|
-
stroke:
|
|
103
|
+
...et ? {} : {
|
|
104
|
+
stroke: p.color
|
|
106
105
|
},
|
|
107
106
|
strokeWidth: 1
|
|
108
107
|
},
|
|
109
108
|
whileInView: {
|
|
110
|
-
fill:
|
|
109
|
+
fill: p.color,
|
|
111
110
|
opacity: 1,
|
|
112
|
-
...
|
|
113
|
-
stroke:
|
|
111
|
+
...et ? {} : {
|
|
112
|
+
stroke: p.color
|
|
114
113
|
},
|
|
115
114
|
strokeWidth: 1,
|
|
116
|
-
cx:
|
|
117
|
-
cy: Math.floor(
|
|
115
|
+
cx: m % v * d + d / 2,
|
|
116
|
+
cy: Math.floor(m / v) * d + d / 2,
|
|
118
117
|
transition: {
|
|
119
118
|
duration: 0,
|
|
120
|
-
delay:
|
|
119
|
+
delay: f.duration / yt.length * m
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
|
-
}, initial: "initial", animate:
|
|
122
|
+
}, initial: "initial", animate: vt ? "whileInView" : "initial", className: (p.color.toLowerCase() === "#fff" || p.color.toLowerCase() === "#ffffff" || p.color.toLowerCase() === "white") && et ? "stroke-primary-gray-400 dark:stroke-primary-gray-500" : "", r: D }, m)) }), t[7] = f.duration, t[8] = ut, t[9] = ht, t[10] = n?.description, t[11] = n?.graphContainer, t[12] = n?.title, t[13] = j, t[14] = a, t[15] = ot, t[16] = y, t[17] = k, t[18] = mt, t[19] = w, t[20] = d, t[21] = v, t[22] = x, t[23] = vt, t[24] = gt, t[25] = c, t[26] = it, t[27] = C, t[28] = o?.locale, t[29] = o?.padZeros, t[30] = o?.precision, t[31] = o?.prefix, t[32] = o?.suffix, t[33] = ft, t[34] = D, t[35] = s, t[36] = tt, t[37] = et, t[38] = Y, t[39] = i?.description, t[40] = i?.graphContainer, t[41] = i?.title, t[42] = xt, t[43] = _, t[44] = wt, t[45] = e, t[46] = b, t[47] = N, t[48] = z, t[49] = S, t[50] = $, t[51] = H, t[52] = L, t[53] = M, t[54] = V, t[55] = F, t[56] = G, t[57] = I, t[58] = T, t[59] = W, t[60] = Z, t[61] = A, t[62] = E, t[63] = P, t[64] = R, t[65] = B, t[66] = O, t[67] = q, t[68] = u, t[69] = h, t[70] = g, t[71] = U;
|
|
124
123
|
} else
|
|
125
|
-
b = t[
|
|
124
|
+
b = t[46], N = t[47], z = t[48], S = t[49], $ = t[50], H = t[51], L = t[52], M = t[53], V = t[54], F = t[55], G = t[56], I = t[57], T = t[58], W = t[59], Z = t[60], A = t[61], E = t[62], P = t[63], R = t[64], B = t[65], O = t[66], q = t[67], u = t[68], h = t[69], g = t[70], U = t[71];
|
|
125
|
+
let J;
|
|
126
|
+
t[97] !== b || t[98] !== U ? (J = /* @__PURE__ */ r.jsx(b, { children: U }), t[97] = b, t[98] = U, t[99] = J) : J = t[99];
|
|
126
127
|
let K;
|
|
127
|
-
t[
|
|
128
|
+
t[100] !== S || t[101] !== $ || t[102] !== H || t[103] !== L || t[104] !== M || t[105] !== J ? (K = /* @__PURE__ */ r.jsx("svg", { width: S, height: $, ref: H, direction: L, viewBox: M, children: J }), t[100] = S, t[101] = $, t[102] = H, t[103] = L, t[104] = M, t[105] = J, t[106] = K) : K = t[106];
|
|
128
129
|
let Q;
|
|
129
|
-
t[
|
|
130
|
+
t[107] !== N || t[108] !== V || t[109] !== K ? (Q = /* @__PURE__ */ r.jsx(N, { ref: V, children: K }), t[107] = N, t[108] = V, t[109] = K, t[110] = Q) : Q = t[110];
|
|
130
131
|
let X;
|
|
131
|
-
t[
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
let pt;
|
|
138
|
-
return t[112] !== z || t[113] !== F || t[114] !== G || t[115] !== I || t[116] !== T || t[117] !== W || t[118] !== A || t[119] !== E || t[120] !== P || t[121] !== R || t[122] !== B || t[123] !== q || t[124] !== O || t[125] !== U || t[126] !== f || t[127] !== h || t[128] !== u || t[129] !== X || t[130] !== Y ? (pt = /* @__PURE__ */ i.jsxs(z, { className: F, style: G, id: I, ref: T, "aria-label": W, backgroundColor: A, theme: E, language: P, minHeight: R, width: B, height: q, relativeHeight: O, padding: U, children: [
|
|
139
|
-
f,
|
|
140
|
-
h,
|
|
132
|
+
t[111] !== at || t[112] !== rt || t[113] !== i?.footnote || t[114] !== i?.source || t[115] !== e ? (X = rt || at ? /* @__PURE__ */ r.jsx(qt, { styles: {
|
|
133
|
+
footnote: i?.footnote,
|
|
134
|
+
source: i?.source
|
|
135
|
+
}, sources: rt, footNote: at, width: e }) : null, t[111] = at, t[112] = rt, t[113] = i?.footnote, t[114] = i?.source, t[115] = e, t[116] = X) : X = t[116];
|
|
136
|
+
let dt;
|
|
137
|
+
return t[117] !== z || t[118] !== F || t[119] !== G || t[120] !== I || t[121] !== T || t[122] !== W || t[123] !== Z || t[124] !== A || t[125] !== E || t[126] !== P || t[127] !== R || t[128] !== B || t[129] !== O || t[130] !== q || t[131] !== u || t[132] !== h || t[133] !== g || t[134] !== Q || t[135] !== X ? (dt = /* @__PURE__ */ r.jsxs(z, { className: F, style: G, id: I, ref: T, "aria-label": W, backgroundColor: Z, theme: A, language: E, minHeight: P, width: R, height: B, relativeHeight: O, padding: q, children: [
|
|
141
138
|
u,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
139
|
+
h,
|
|
140
|
+
g,
|
|
141
|
+
Q,
|
|
142
|
+
X
|
|
143
|
+
] }), t[117] = z, t[118] = F, t[119] = G, t[120] = I, t[121] = T, t[122] = W, t[123] = Z, t[124] = A, t[125] = E, t[126] = P, t[127] = R, t[128] = B, t[129] = O, t[130] = q, t[131] = u, t[132] = h, t[133] = g, t[134] = Q, t[135] = X, t[136] = dt) : dt = t[136], dt;
|
|
145
144
|
}
|
|
146
|
-
function
|
|
147
|
-
return
|
|
145
|
+
function ee(l) {
|
|
146
|
+
return l !== void 0;
|
|
148
147
|
}
|
|
149
|
-
function
|
|
150
|
-
return
|
|
148
|
+
function oe(l) {
|
|
149
|
+
return l !== void 0;
|
|
151
150
|
}
|
|
152
|
-
function
|
|
153
|
-
return
|
|
151
|
+
function ie(l) {
|
|
152
|
+
return l.data;
|
|
154
153
|
}
|
|
155
|
-
function
|
|
156
|
-
return
|
|
154
|
+
function re(l) {
|
|
155
|
+
return l !== void 0;
|
|
157
156
|
}
|
|
158
|
-
function
|
|
159
|
-
return
|
|
157
|
+
function ae(l) {
|
|
158
|
+
return l.data;
|
|
160
159
|
}
|
|
161
|
-
function
|
|
162
|
-
return
|
|
160
|
+
function le(l) {
|
|
161
|
+
return l.value;
|
|
163
162
|
}
|
|
164
163
|
export {
|
|
165
|
-
|
|
164
|
+
we as UnitChart
|
|
166
165
|
};
|
|
167
166
|
//# sourceMappingURL=UnitChart.js.map
|
package/dist/UnitChart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitChart.js","sources":["../src/Components/Graphs/UnitChart/index.tsx"],"sourcesContent":["import { useRef } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { H2, P } from '@undp/design-system-react/Typography';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport {\r\n UnitChartDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\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: UnitChartDataType[];\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 /** Note with h2 tag just above the graph. Can be used to highlight text */\r\n note?: string;\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 /** Colors of the highlighted circles */\r\n colors?: 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\r\n // Graph Parameters\r\n /** Size of the visualization */\r\n size?: number;\r\n /** No. of dots in a single row */\r\n gridSize?: number;\r\n /** Spacing between 2 dots */\r\n unitPadding?: number;\r\n /** Total no. of dot that are rendered in the chart */\r\n totalNoOfDots?: number;\r\n /** Toggle visibility of stroke for the unfilled dots */\r\n showStrokeForWhiteDots?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Toggle visibility of color scale */\r\n showColorScale?: boolean;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\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 /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\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 UnitChart(props: Props) {\r\n const {\r\n data,\r\n size = 200,\r\n graphTitle,\r\n sources,\r\n colors = Colors.light.categoricalColors.colors,\r\n graphDescription,\r\n totalNoOfDots = 100,\r\n unitPadding = 3,\r\n gridSize = 10,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n graphDownload = false,\r\n language = 'en',\r\n showColorScale = true,\r\n showStrokeForWhiteDots = true,\r\n note,\r\n dataDownload = false,\r\n theme = 'light',\r\n width,\r\n height,\r\n minHeight = 0,\r\n relativeHeight,\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n locale,\r\n naLabel = 'NA',\r\n } = props;\r\n const svgRef = useRef(null);\r\n const animateValue =\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 const isInView = useInView(svgRef, {\r\n once: animateValue.once,\r\n amount: animateValue.amount,\r\n });\r\n const totalValue = sum(data.map(d => d.value));\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const gridDimension = size / gridSize;\r\n const radius = (gridDimension - unitPadding * 2) / 2;\r\n if (radius <= 0) {\r\n console.error(\r\n 'The size of single unit is less than or equal to zero. Check values for ((dimension / gridSize) - (padding * 2)) / 2 is not less than or equal to 0.',\r\n );\r\n return null;\r\n }\r\n\r\n const cellsData: { color: string }[] = [];\r\n data.forEach((item, index) => {\r\n const count = Math.round((item.value / totalValue) * totalNoOfDots);\r\n for (let i = 0; i < count; i += 1) {\r\n cellsData.push({ color: colors[index] });\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 ? (\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 {note ? (\r\n <H2\r\n marginBottom='2xs'\r\n className='text-primary-gray-700 dark:text-primary-gray-100 font-bold'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n >\r\n {note}\r\n </H2>\r\n ) : null}\r\n {showColorScale ? (\r\n <div\r\n className='mb-4 leading-0'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n aria-label='Color legend'\r\n >\r\n <div className='flex mb-0 flex-wrap gap-x-4 gap-y-1'>\r\n {data.map((d, i) => (\r\n <div className='flex gap-2 items-center' key={i}>\r\n <div className='w-3 h-3 rounded-full' style={{ backgroundColor: colors[i] }} />\r\n <P\r\n marginBottom='none'\r\n size='sm'\r\n className='text-primary-gray-700 dark:text-primary-gray-100'\r\n >\r\n {d.label}:{' '}\r\n <span className='font-bold'>\r\n {numberFormattingFunction(\r\n d.value,\r\n naLabel,\r\n precision,\r\n undefined,\r\n undefined,\r\n locale || language,\r\n )}\r\n </span>\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n <svg\r\n width={`${width || size}px`}\r\n height={`${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}px`}\r\n ref={svgRef}\r\n direction='ltr'\r\n viewBox={`0 0 ${width || size} ${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}`}\r\n >\r\n <AnimatePresence>\r\n <g>\r\n {cellsData.map((d, i) => (\r\n <motion.circle\r\n key={i}\r\n style={{\r\n strokeWidth: 1,\r\n }}\r\n variants={{\r\n initial: {\r\n fill: '#fff',\r\n opacity: 0,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n },\r\n whileInView: {\r\n fill: d.color,\r\n opacity: 1,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n cx: (i % gridSize) * gridDimension + gridDimension / 2,\r\n cy: Math.floor(i / gridSize) * gridDimension + gridDimension / 2,\r\n transition: {\r\n duration: 0,\r\n delay: (animateValue.duration / cellsData.length) * i,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={\r\n (d.color.toLowerCase() === '#fff' ||\r\n d.color.toLowerCase() === '#ffffff' ||\r\n d.color.toLowerCase() === 'white') &&\r\n showStrokeForWhiteDots\r\n ? 'stroke-primary-gray-400 dark:stroke-primary-gray-500'\r\n : ''\r\n }\r\n r={radius}\r\n />\r\n ))}\r\n </g>\r\n </AnimatePresence>\r\n </svg>\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: styles?.footnote,\r\n source: styles?.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":["UnitChart","props","$","_c","data","size","t0","graphTitle","sources","colors","t1","graphDescription","totalNoOfDots","t2","unitPadding","t3","gridSize","t4","footNote","padding","backgroundColor","t5","graphID","graphDownload","t6","language","t7","showColorScale","t8","showStrokeForWhiteDots","t9","note","dataDownload","t10","theme","t11","width","height","minHeight","t12","relativeHeight","ariaLabel","styles","classNames","animate","t13","precision","t14","locale","naLabel","t15","undefined","Colors","light","categoricalColors","svgRef","useRef","t16","duration","once","amount","animateValue","t17","isInView","useInView","t18","sum","map","_temp","totalValue","graphParentDiv","graphDiv","gridDimension","radius","console","error","T0","T1","T2","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","t41","description","graphContainer","title","cellsData","forEach","item","index","count","Math","round","value","i","push","color","GraphContainer","jsx","GraphHeader","_temp2","filter","_temp3","length","_temp4","_temp5","_temp6","H2","d_5","i_0","jsxs","P","d","label","numberFormattingFunction","GraphArea","max","floor","AnimatePresence","d_6","i_1","strokeWidth","initial","fill","opacity","stroke","whileInView","cx","cy","transition","delay","toLowerCase","t42","t43","t44","t45","footnote","source","GraphFooter","t46","d_2","d_1","d_0","d_4","d_3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UnitChart.js","sources":["../src/Components/Graphs/UnitChart/index.tsx"],"sourcesContent":["import { useRef } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { H2, P } from '@undp/design-system-react/Typography';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport {\r\n UnitChartDataType,\r\n SourcesDataType,\r\n Languages,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\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: UnitChartDataType[];\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 /** Note with h2 tag just above the graph. Can be used to highlight text */\r\n note?: string;\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 /** Colors of the highlighted circles */\r\n colors?: 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\r\n // Graph Parameters\r\n /** Size of the visualization */\r\n size?: number;\r\n /** No. of dots in a single row */\r\n gridSize?: number;\r\n /** Spacing between 2 dots */\r\n unitPadding?: number;\r\n /** Total no. of dot that are rendered in the chart */\r\n totalNoOfDots?: number;\r\n /** Toggle visibility of stroke for the unfilled dots */\r\n showStrokeForWhiteDots?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Toggle visibility of color scale */\r\n showColorScale?: boolean;\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 /** 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 // 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 UnitChart(props: Props) {\r\n const {\r\n data,\r\n size = 200,\r\n graphTitle,\r\n sources,\r\n colors = Colors.light.categoricalColors.colors,\r\n graphDescription,\r\n totalNoOfDots = 100,\r\n unitPadding = 3,\r\n gridSize = 10,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n graphDownload = false,\r\n language = 'en',\r\n showColorScale = true,\r\n showStrokeForWhiteDots = true,\r\n note,\r\n dataDownload = false,\r\n theme = 'light',\r\n width,\r\n height,\r\n minHeight = 0,\r\n relativeHeight,\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n animate = false,\r\n naLabel = 'NA',\r\n numberDisplayOptions,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const animateValue =\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 const isInView = useInView(svgRef, {\r\n once: animateValue.once,\r\n amount: animateValue.amount,\r\n });\r\n const totalValue = sum(data.map(d => d.value));\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const gridDimension = size / gridSize;\r\n const radius = (gridDimension - unitPadding * 2) / 2;\r\n if (radius <= 0) {\r\n console.error(\r\n 'The size of single unit is less than or equal to zero. Check values for ((dimension / gridSize) - (padding * 2)) / 2 is not less than or equal to 0.',\r\n );\r\n return null;\r\n }\r\n\r\n const cellsData: { color: string }[] = [];\r\n data.forEach((item, index) => {\r\n const count = Math.round((item.value / totalValue) * totalNoOfDots);\r\n for (let i = 0; i < count; i += 1) {\r\n cellsData.push({ color: colors[index] });\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 ? (\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 {note ? (\r\n <H2\r\n marginBottom='2xs'\r\n className='text-primary-gray-700 dark:text-primary-gray-100 font-bold'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n >\r\n {note}\r\n </H2>\r\n ) : null}\r\n {showColorScale ? (\r\n <div\r\n className='mb-4 leading-0'\r\n style={{ width: width ? `${width}px` : '100%' }}\r\n aria-label='Color legend'\r\n >\r\n <div className='flex mb-0 flex-wrap gap-x-4 gap-y-1'>\r\n {data.map((d, i) => (\r\n <div className='flex gap-2 items-center' key={i}>\r\n <div className='w-3 h-3 rounded-full' style={{ backgroundColor: colors[i] }} />\r\n <P\r\n marginBottom='none'\r\n size='sm'\r\n className='text-primary-gray-700 dark:text-primary-gray-100'\r\n >\r\n {d.label}:{' '}\r\n <span className='font-bold'>\r\n {numberFormattingFunction(\r\n d.value,\r\n naLabel,\r\n numberDisplayOptions?.precision ?? 2,\r\n numberDisplayOptions?.prefix,\r\n numberDisplayOptions?.suffix,\r\n numberDisplayOptions?.locale || 'en',\r\n numberDisplayOptions?.padZeros || false,\r\n )}\r\n </span>\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n <svg\r\n width={`${width || size}px`}\r\n height={`${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}px`}\r\n ref={svgRef}\r\n direction='ltr'\r\n viewBox={`0 0 ${width || size} ${Math.max(\r\n minHeight,\r\n height\r\n ? relativeHeight && width\r\n ? minHeight\r\n ? width * relativeHeight > minHeight\r\n ? width * relativeHeight\r\n : minHeight\r\n : width * relativeHeight\r\n : height\r\n : Math.floor((totalNoOfDots - 1) / gridSize) * gridDimension +\r\n gridDimension / 2 +\r\n radius +\r\n 5,\r\n )}`}\r\n >\r\n <AnimatePresence>\r\n <g>\r\n {cellsData.map((d, i) => (\r\n <motion.circle\r\n key={i}\r\n style={{\r\n strokeWidth: 1,\r\n }}\r\n variants={{\r\n initial: {\r\n fill: '#fff',\r\n opacity: 0,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n },\r\n whileInView: {\r\n fill: d.color,\r\n opacity: 1,\r\n ...(!showStrokeForWhiteDots ? { stroke: d.color } : {}),\r\n strokeWidth: 1,\r\n cx: (i % gridSize) * gridDimension + gridDimension / 2,\r\n cy: Math.floor(i / gridSize) * gridDimension + gridDimension / 2,\r\n transition: {\r\n duration: 0,\r\n delay: (animateValue.duration / cellsData.length) * i,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n className={\r\n (d.color.toLowerCase() === '#fff' ||\r\n d.color.toLowerCase() === '#ffffff' ||\r\n d.color.toLowerCase() === 'white') &&\r\n showStrokeForWhiteDots\r\n ? 'stroke-primary-gray-400 dark:stroke-primary-gray-500'\r\n : ''\r\n }\r\n r={radius}\r\n />\r\n ))}\r\n </g>\r\n </AnimatePresence>\r\n </svg>\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{\r\n footnote: styles?.footnote,\r\n source: styles?.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":["UnitChart","props","$","_c","data","size","t0","graphTitle","sources","colors","t1","graphDescription","totalNoOfDots","t2","unitPadding","t3","gridSize","t4","footNote","padding","backgroundColor","t5","graphID","graphDownload","t6","language","t7","showColorScale","t8","showStrokeForWhiteDots","t9","note","dataDownload","t10","theme","t11","width","height","minHeight","t12","relativeHeight","ariaLabel","styles","classNames","animate","t13","naLabel","t14","numberDisplayOptions","undefined","Colors","light","categoricalColors","svgRef","useRef","t15","duration","once","amount","animateValue","t16","isInView","useInView","t17","sum","map","_temp","totalValue","graphParentDiv","graphDiv","gridDimension","radius","console","error","T0","T1","T2","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","description","graphContainer","title","locale","padZeros","precision","prefix","suffix","cellsData","forEach","item","index","count","Math","round","value","i","push","color","GraphContainer","jsx","GraphHeader","_temp2","filter","_temp3","length","_temp4","_temp5","_temp6","H2","d_5","i_0","jsxs","P","d","label","numberFormattingFunction","GraphArea","max","floor","AnimatePresence","d_6","i_1","strokeWidth","initial","fill","opacity","stroke","whileInView","cx","cy","transition","delay","toLowerCase","t41","t42","t43","t44","footnote","source","GraphFooter","t45","d_2","d_1","d_0","d_4","d_3"],"mappings":"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"}
|