@undp/data-viz 2.1.3 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.js +279 -272
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/BarGraph.cjs +1 -1
  6. package/dist/BarGraph.cjs.map +1 -1
  7. package/dist/BarGraph.d.ts +2 -0
  8. package/dist/BarGraph.js +1795 -1724
  9. package/dist/BarGraph.js.map +1 -1
  10. package/dist/BeeSwarmChart.cjs +1 -1
  11. package/dist/BeeSwarmChart.cjs.map +1 -1
  12. package/dist/BeeSwarmChart.js +312 -305
  13. package/dist/BeeSwarmChart.js.map +1 -1
  14. package/dist/BiVariateChoroplethMap.cjs +1 -1
  15. package/dist/BiVariateChoroplethMap.js +1 -1
  16. package/dist/BulletChart.cjs +1 -1
  17. package/dist/BulletChart.cjs.map +1 -1
  18. package/dist/BulletChart.js +298 -287
  19. package/dist/BulletChart.js.map +1 -1
  20. package/dist/ButterflyChart.cjs +1 -1
  21. package/dist/ButterflyChart.cjs.map +1 -1
  22. package/dist/ButterflyChart.js +224 -217
  23. package/dist/ButterflyChart.js.map +1 -1
  24. package/dist/ChoroplethMap.cjs +1 -1
  25. package/dist/ChoroplethMap.js +1 -1
  26. package/dist/CirclePackingGraph.cjs +1 -1
  27. package/dist/CirclePackingGraph.js +2 -2
  28. package/dist/DifferenceLineChart.cjs +1 -1
  29. package/dist/DifferenceLineChart.cjs.map +1 -1
  30. package/dist/DifferenceLineChart.js +404 -397
  31. package/dist/DifferenceLineChart.js.map +1 -1
  32. package/dist/DonutChart.cjs +1 -1
  33. package/dist/DonutChart.cjs.map +1 -1
  34. package/dist/DonutChart.js +116 -113
  35. package/dist/DonutChart.js.map +1 -1
  36. package/dist/DotDensityMap.cjs +1 -1
  37. package/dist/DotDensityMap.js +1 -1
  38. package/dist/DualAxisLineChart.cjs +1 -1
  39. package/dist/DualAxisLineChart.cjs.map +1 -1
  40. package/dist/DualAxisLineChart.js +320 -313
  41. package/dist/DualAxisLineChart.js.map +1 -1
  42. package/dist/DumbbellChart.cjs +1 -1
  43. package/dist/DumbbellChart.cjs.map +1 -1
  44. package/dist/DumbbellChart.js +298 -291
  45. package/dist/DumbbellChart.js.map +1 -1
  46. package/dist/{EmptyState-BZo1BbAn.js → EmptyState-C7ZXkZWd.js} +4 -4
  47. package/dist/EmptyState-C7ZXkZWd.js.map +1 -0
  48. package/dist/EmptyState-gLDRXBHm.cjs +2 -0
  49. package/dist/EmptyState-gLDRXBHm.cjs.map +1 -0
  50. package/dist/GraphEl-BixTEyKW.cjs +2 -0
  51. package/dist/GraphEl-BixTEyKW.cjs.map +1 -0
  52. package/dist/{GraphEl-CRrAlbcr.js → GraphEl-Dyu_EIQb.js} +3 -2
  53. package/dist/GraphEl-Dyu_EIQb.js.map +1 -0
  54. package/dist/GriddedGraphs.cjs +1 -1
  55. package/dist/GriddedGraphs.js +2 -2
  56. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  57. package/dist/GriddedGraphsFromConfig.js +1 -1
  58. package/dist/HeatMap.cjs +1 -1
  59. package/dist/HeatMap.cjs.map +1 -1
  60. package/dist/HeatMap.js +179 -172
  61. package/dist/HeatMap.js.map +1 -1
  62. package/dist/Histogram.cjs +1 -1
  63. package/dist/Histogram.js +2 -2
  64. package/dist/HybridMap.cjs +1 -1
  65. package/dist/HybridMap.js +1 -1
  66. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  67. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  68. package/dist/LineChartWithConfidenceInterval.js +368 -361
  69. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  70. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  71. package/dist/MultiGraphDashboardFromConfig.js +1 -1
  72. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  73. package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
  74. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  75. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +1 -1
  76. package/dist/MultiLineAltChart.cjs +1 -1
  77. package/dist/MultiLineAltChart.cjs.map +1 -1
  78. package/dist/MultiLineAltChart.js +327 -320
  79. package/dist/MultiLineAltChart.js.map +1 -1
  80. package/dist/MultiLineChart.cjs +1 -1
  81. package/dist/MultiLineChart.cjs.map +1 -1
  82. package/dist/MultiLineChart.js +374 -367
  83. package/dist/MultiLineChart.js.map +1 -1
  84. package/dist/ParetoChart.cjs +1 -1
  85. package/dist/ParetoChart.cjs.map +1 -1
  86. package/dist/ParetoChart.js +385 -378
  87. package/dist/ParetoChart.js.map +1 -1
  88. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  89. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +1 -1
  90. package/dist/RadarChart.cjs +1 -1
  91. package/dist/RadarChart.cjs.map +1 -1
  92. package/dist/RadarChart.js +34 -33
  93. package/dist/RadarChart.js.map +1 -1
  94. package/dist/SankeyChart.cjs +1 -1
  95. package/dist/SankeyChart.cjs.map +1 -1
  96. package/dist/SankeyChart.js +176 -169
  97. package/dist/SankeyChart.js.map +1 -1
  98. package/dist/ScatterPlot.cjs +1 -1
  99. package/dist/ScatterPlot.cjs.map +1 -1
  100. package/dist/ScatterPlot.js +366 -359
  101. package/dist/ScatterPlot.js.map +1 -1
  102. package/dist/SimpleLineChart.cjs +1 -1
  103. package/dist/SimpleLineChart.cjs.map +1 -1
  104. package/dist/SimpleLineChart.js +285 -278
  105. package/dist/SimpleLineChart.js.map +1 -1
  106. package/dist/SingleGraphDashboard.cjs +1 -1
  107. package/dist/SingleGraphDashboard.js +2 -2
  108. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  109. package/dist/SingleGraphDashboardFromConfig.js +1 -1
  110. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  111. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +1 -1
  112. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  113. package/dist/SingleGraphDashboardThreeDGraphs.js +1 -1
  114. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  115. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +1 -1
  116. package/dist/SlopeChart.cjs +1 -1
  117. package/dist/SlopeChart.cjs.map +1 -1
  118. package/dist/SlopeChart.js +243 -236
  119. package/dist/SlopeChart.js.map +1 -1
  120. package/dist/Spinner-CQZcjzwd.cjs +2 -0
  121. package/dist/Spinner-CQZcjzwd.cjs.map +1 -0
  122. package/dist/{Spinner-D7rnnwnA.js → Spinner-DVBnY6Vg.js} +5 -5
  123. package/dist/Spinner-DVBnY6Vg.js.map +1 -0
  124. package/dist/StripChart.cjs +1 -1
  125. package/dist/StripChart.cjs.map +1 -1
  126. package/dist/StripChart.js +293 -286
  127. package/dist/StripChart.js.map +1 -1
  128. package/dist/ThreeDGlobe.cjs +1 -1
  129. package/dist/ThreeDGlobe.js +1 -1
  130. package/dist/TreeMapGraph.cjs +1 -1
  131. package/dist/TreeMapGraph.cjs.map +1 -1
  132. package/dist/TreeMapGraph.js +222 -215
  133. package/dist/TreeMapGraph.js.map +1 -1
  134. package/dist/index-R1gTfap5.js +337 -0
  135. package/dist/index-R1gTfap5.js.map +1 -0
  136. package/dist/index-WML2dCZ0.cjs +2 -0
  137. package/dist/{index-CF5hnGvG.cjs.map → index-WML2dCZ0.cjs.map} +1 -1
  138. package/dist/index.cjs +1 -1
  139. package/dist/index.d.ts +2 -0
  140. package/dist/index.js +1 -1
  141. package/dist/style.css +1 -1
  142. package/package.json +2 -2
  143. package/dist/EmptyState-BZo1BbAn.js.map +0 -1
  144. package/dist/EmptyState-sAEZ_5rU.cjs +0 -2
  145. package/dist/EmptyState-sAEZ_5rU.cjs.map +0 -1
  146. package/dist/GraphEl-BLMih7RN.cjs +0 -2
  147. package/dist/GraphEl-BLMih7RN.cjs.map +0 -1
  148. package/dist/GraphEl-CRrAlbcr.js.map +0 -1
  149. package/dist/Spinner-D7rnnwnA.js.map +0 -1
  150. package/dist/Spinner-DRMBUsX7.cjs +0 -2
  151. package/dist/Spinner-DRMBUsX7.cjs.map +0 -1
  152. package/dist/index-CF5hnGvG.cjs +0 -2
  153. package/dist/index-DPGq3eIL.js +0 -330
  154. package/dist/index-DPGq3eIL.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DonutChart.cjs","sources":["../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/descending.js","../node_modules/d3-shape/src/identity.js","../node_modules/d3-shape/src/pie.js","../src/Utils/getArc.ts","../src/Components/Graphs/DonutChart/Graph.tsx","../src/Components/Graphs/DonutChart/index.tsx"],"sourcesContent":["export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","const polarToCartesian = (\r\n centerX: number,\r\n centerY: number,\r\n radius: number,\r\n angleInRadians: number,\r\n) => {\r\n return {\r\n x: centerX + radius * Math.cos(angleInRadians),\r\n y: centerY + radius * Math.sin(angleInRadians),\r\n };\r\n};\r\n\r\nexport function getArc(\r\n x: number,\r\n y: number,\r\n radius: number,\r\n startAngleInRadians: number,\r\n endAngleInRadians: number,\r\n) {\r\n const start = polarToCartesian(x, y, radius, startAngleInRadians);\r\n const end = polarToCartesian(x, y, radius, endAngleInRadians);\r\n const largeArcFlag = endAngleInRadians - startAngleInRadians <= Math.PI ? '0' : '1';\r\n const d = ['M', start.x, start.y, 'A', radius, radius, 0, largeArcFlag, 1, end.x, end.y].join(\r\n ' ',\r\n );\r\n return d;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport isEqual from 'fast-deep-equal';\r\nimport { pie } from 'd3-shape';\r\nimport { useRef, useState } from 'react';\r\nimport { H2, P } from '@undp/design-system-react/Typography';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport { AnimateDataType, ClassNameObject, DonutChartDataType, StyleObject } from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\nimport { getArc } from '@/Utils/getArc';\r\n\r\ninterface Props {\r\n mainText?: string | { label: string; suffix?: string; prefix?: string };\r\n radius: number;\r\n colors: string[];\r\n subNote?: string;\r\n strokeWidth: number;\r\n data: DonutChartDataType[];\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n colorDomain: string[];\r\n resetSelectionOnDoubleClick: boolean;\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n animate: AnimateDataType;\r\n trackColor: string;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n mainText,\r\n data,\r\n radius,\r\n colors,\r\n subNote,\r\n strokeWidth,\r\n tooltip,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n colorDomain,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n precision,\r\n animate,\r\n trackColor,\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 pieData = pie()\r\n .sort(null)\r\n .startAngle(0)\r\n .value((d: any) => d.size);\r\n\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n\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 return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${radius * 2}px`}\r\n height={`${radius * 2}px`}\r\n viewBox={`0 0 ${radius * 2} ${radius * 2}`}\r\n direction='ltr'\r\n className='mx-auto'\r\n >\r\n <motion.g transform={`translate(${radius} ${radius})`}>\r\n {mainText || subNote ? (\r\n <foreignObject\r\n y={0 - (radius - strokeWidth)}\r\n x={0 - (radius - strokeWidth)}\r\n width={2 * (radius - strokeWidth)}\r\n height={2 * (radius - strokeWidth)}\r\n >\r\n <div className='flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-4'>\r\n {mainText ? (\r\n <H2\r\n marginBottom='none'\r\n className='donut-main-text text-primary-gray-700 dark:text-primary-gray-100 leading-none text-center'\r\n >\r\n {typeof mainText === 'string'\r\n ? mainText\r\n : data.findIndex(d => d.label === mainText.label) !== -1\r\n ? numberFormattingFunction(\r\n data[data.findIndex(d => d.label === mainText.label)].size,\r\n 'NA',\r\n precision,\r\n mainText.prefix,\r\n mainText.suffix,\r\n )\r\n : 'NA'}\r\n </H2>\r\n ) : null}\r\n {subNote ? (\r\n <P\r\n marginBottom='none'\r\n size='base'\r\n leading='none'\r\n className='donut-sub-note text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold'\r\n >\r\n {subNote}\r\n </P>\r\n ) : typeof mainText === 'string' || !mainText ? null : (\r\n <P\r\n size='base'\r\n marginBottom='none'\r\n leading='none'\r\n className='donut-label text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold'\r\n >\r\n {mainText.label}\r\n </P>\r\n )}\r\n </div>\r\n </foreignObject>\r\n ) : null}\r\n <circle\r\n cx={0}\r\n cy={0}\r\n r={radius - strokeWidth / 2}\r\n fill='none'\r\n stroke={trackColor}\r\n strokeWidth={strokeWidth}\r\n />\r\n <AnimatePresence>\r\n {pieData(data as any).map((d, i) => (\r\n <motion.path\r\n key={i}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d: getArc(\r\n 0,\r\n 0,\r\n radius - strokeWidth / 2,\r\n d.startAngle - Math.PI / 2,\r\n d.endAngle - Math.PI / 2,\r\n ),\r\n opacity: mouseOverData\r\n ? mouseOverData.label === (d.data as any).label\r\n ? 1\r\n : 0.3\r\n : 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d: getArc(\r\n 0,\r\n 0,\r\n radius - strokeWidth / 2,\r\n d.startAngle - Math.PI / 2,\r\n d.endAngle - Math.PI / 2,\r\n ),\r\n opacity: mouseOverData\r\n ? mouseOverData.label === (d.data as any).label\r\n ? 1\r\n : 0.3\r\n : 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n style={{\r\n stroke:\r\n colorDomain.indexOf((d.data as any).label) !== -1\r\n ? colors[colorDomain.indexOf((d.data as any).label) % colors.length]\r\n : Colors.gray,\r\n strokeWidth,\r\n fill: 'none',\r\n }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d.data);\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.data) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d.data);\r\n if (onSeriesMouseClick) onSeriesMouseClick(d.data);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d.data);\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 ))}\r\n </AnimatePresence>\r\n </motion.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 { useEffect, useRef, useState } from 'react';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport orderBy from 'lodash.orderby';\r\nimport { Spacer } from '@undp/design-system-react/Spacer';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n DonutChartDataType,\r\n Languages,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\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: DonutChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for each segment */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: 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 /** Radius of the donut chart */\r\n radius?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Max width of the color scale as a css property */\r\n colorScaleMaxWidth?: string;\r\n /** Stroke width of the arcs and circle of the donut */\r\n strokeWidth?: number;\r\n /** Sorting order for data. This is overwritten by labelOrder prop */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Large text at the center of the donut chart. If the type is an object then the text is the value in the data for the label mentioned in the object */\r\n mainText?: string | { label: string; suffix?: string; prefix?: string };\r\n /** Small text at the center of the donut chart */\r\n subNote?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Track color (i.e. the color of the donut chart's background) of the donut chart */\r\n trackColor?: 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 /** 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 DonutChart(props: Props) {\r\n const {\r\n mainText,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n strokeWidth = 50,\r\n graphDescription,\r\n subNote,\r\n footNote,\r\n radius,\r\n data,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n tooltip,\r\n onSeriesMouseOver,\r\n graphID,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n colorDomain,\r\n sortData,\r\n language = 'en',\r\n theme = 'light',\r\n width,\r\n height,\r\n minHeight = 0,\r\n relativeHeight,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n colorScaleMaxWidth,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n precision = 2,\r\n animate = false,\r\n trackColor = Colors.light.grays['gray-200'],\r\n } = props;\r\n\r\n const [graphRadius, setGraphRadius] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setGraphRadius(\r\n (Math.min(\r\n ...[\r\n entries[0].target.clientWidth || 620,\r\n entries[0].target.clientHeight || 480,\r\n radius || Infinity,\r\n ],\r\n ) || 420) / 2,\r\n );\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [radius]);\r\n\r\n const sortedData = sortData ? orderBy(data, ['size'], [sortData]) : data;\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale ? (\r\n <div\r\n className={cn(\r\n 'leading-0 flex mb-0 ml-auto mr-auto justify-center gap-x-3 gap-y-0 flex-wrap',\r\n classNames?.colorLegend,\r\n )}\r\n style={{ maxWidth: colorScaleMaxWidth }}\r\n aria-label='Color legend'\r\n >\r\n {sortedData.map((d, i) => (\r\n <div className='flex gap-2 items-center pb-3' key={i}>\r\n <div\r\n className='w-3 h-3 rounded-full'\r\n style={{\r\n backgroundColor:\r\n (colorDomain || sortedData.map(el => el.label)).indexOf(d.label) !== -1\r\n ? (colors || Colors[theme].categoricalColors.colors)[\r\n (colorDomain || sortedData.map(el => el.label)).indexOf(d.label) %\r\n (colors || Colors[theme].categoricalColors.colors).length\r\n ]\r\n : Colors.gray,\r\n }}\r\n />\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' style={{ fontSize: 'inherit' }}>\r\n {numberFormattingFunction(d.size, 'NA', precision, prefix, suffix)}\r\n </span>\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n <Spacer size='lg' />\r\n <GraphArea ref={graphDiv}>\r\n {graphRadius ? (\r\n <Graph\r\n mainText={mainText}\r\n data={sortedData}\r\n colors={colors}\r\n radius={graphRadius}\r\n subNote={subNote}\r\n strokeWidth={strokeWidth}\r\n tooltip={tooltip}\r\n colorDomain={colorDomain || sortedData.map(d => d.label)}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n precision={precision}\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 trackColor={trackColor}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["pi","tau","descending","a","b","identity","d","pie","value","sortValues","sort","startAngle","constant","endAngle","padAngle","data","i","n","array","j","k","sum","index","arcs","a0","da","a1","p","pa","v","_","polarToCartesian","centerX","centerY","radius","angleInRadians","x","Math","cos","y","sin","getArc","startAngleInRadians","endAngleInRadians","start","end","largeArcFlag","PI","join","Graph","props","$","_c","mainText","colors","subNote","strokeWidth","tooltip","onSeriesMouseOver","onSeriesMouseClick","colorDomain","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","precision","animate","trackColor","svgRef","useRef","t0","amount","once","isInView","useInView","pieData","_temp","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","motion","t2","t3","t4","t5","t6","t7","t8","t9","jsx","jsxs","H2","findIndex","d_1","label","numberFormattingFunction","d_0","size","prefix","suffix","P","t10","t11","T0","AnimatePresence","t12","duration","d_2","initial","pathLength","opacity","whileInView","transition","stroke","indexOf","length","Colors","gray","fill","event","clientY","clientX","isEqual","event_0","t13","map","t14","t15","g","t16","svg","t17","Tooltip","t18","modal","DetailsModal","t19","Fragment","DonutChart","graphTitle","light","categoricalColors","sources","graphDescription","footNote","showColorScale","padding","backgroundColor","graphID","graphDownload","dataDownload","sortData","language","theme","width","height","minHeight","relativeHeight","ariaLabel","colorScaleMaxWidth","grays","graphRadius","setGraphRadius","graphDiv","graphParentDiv","useEffect","resizeObserver","ResizeObserver","entries","min","target","clientWidth","clientHeight","Infinity","current","observe","disconnect","sortedData","orderBy","GraphContainer","graphContainer","GraphHeader","title","description","filter","EmptyState","cn","colorLegend","maxWidth","el","fontSize","Spacer","GraphArea","GraphFooter","footnote","source"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"DonutChart.cjs","sources":["../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/descending.js","../node_modules/d3-shape/src/identity.js","../node_modules/d3-shape/src/pie.js","../src/Utils/getArc.ts","../src/Components/Graphs/DonutChart/Graph.tsx","../src/Components/Graphs/DonutChart/index.tsx"],"sourcesContent":["export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","const polarToCartesian = (\r\n centerX: number,\r\n centerY: number,\r\n radius: number,\r\n angleInRadians: number,\r\n) => {\r\n return {\r\n x: centerX + radius * Math.cos(angleInRadians),\r\n y: centerY + radius * Math.sin(angleInRadians),\r\n };\r\n};\r\n\r\nexport function getArc(\r\n x: number,\r\n y: number,\r\n radius: number,\r\n startAngleInRadians: number,\r\n endAngleInRadians: number,\r\n) {\r\n const start = polarToCartesian(x, y, radius, startAngleInRadians);\r\n const end = polarToCartesian(\r\n x,\r\n y,\r\n radius,\r\n endAngleInRadians === 2 * Math.PI ? 1.9999999999 * Math.PI : endAngleInRadians,\r\n );\r\n const largeArcFlag = endAngleInRadians - startAngleInRadians <= Math.PI ? '0' : '1';\r\n const d = ['M', start.x, start.y, 'A', radius, radius, 0, largeArcFlag, 1, end.x, end.y].join(\r\n ' ',\r\n );\r\n return d;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport isEqual from 'fast-deep-equal';\r\nimport { pie } from 'd3-shape';\r\nimport { useRef, useState } from 'react';\r\nimport { H2, P } from '@undp/design-system-react/Typography';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\n\r\nimport { AnimateDataType, ClassNameObject, DonutChartDataType, StyleObject } from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\nimport { getArc } from '@/Utils/getArc';\r\n\r\ninterface Props {\r\n mainText?: string | { label: string; suffix?: string; prefix?: string };\r\n radius: number;\r\n colors: string[];\r\n subNote?: string;\r\n strokeWidth: number;\r\n data: DonutChartDataType[];\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n colorDomain: string[];\r\n resetSelectionOnDoubleClick: boolean;\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n animate: AnimateDataType;\r\n trackColor: string;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n mainText,\r\n data,\r\n radius,\r\n colors,\r\n subNote,\r\n strokeWidth,\r\n tooltip,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n colorDomain,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n precision,\r\n animate,\r\n trackColor,\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 pieData = pie()\r\n .sort(null)\r\n .startAngle(0)\r\n .value((d: any) => d.size);\r\n\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n\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 return (\r\n <>\r\n <motion.svg\r\n ref={svgRef}\r\n width={`${radius * 2}px`}\r\n height={`${radius * 2}px`}\r\n viewBox={`0 0 ${radius * 2} ${radius * 2}`}\r\n direction='ltr'\r\n className='mx-auto'\r\n >\r\n <motion.g transform={`translate(${radius} ${radius})`}>\r\n {mainText || subNote ? (\r\n <foreignObject\r\n y={0 - (radius - strokeWidth)}\r\n x={0 - (radius - strokeWidth)}\r\n width={2 * (radius - strokeWidth)}\r\n height={2 * (radius - strokeWidth)}\r\n >\r\n <div className='flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-4'>\r\n {mainText ? (\r\n <H2\r\n marginBottom='none'\r\n className='donut-main-text text-primary-gray-700 dark:text-primary-gray-100 leading-none text-center'\r\n >\r\n {typeof mainText === 'string'\r\n ? mainText\r\n : data.findIndex(d => d.label === mainText.label) !== -1\r\n ? numberFormattingFunction(\r\n data[data.findIndex(d => d.label === mainText.label)].size,\r\n 'NA',\r\n precision,\r\n mainText.prefix,\r\n mainText.suffix,\r\n )\r\n : 'NA'}\r\n </H2>\r\n ) : null}\r\n {subNote ? (\r\n <P\r\n marginBottom='none'\r\n size='base'\r\n leading='none'\r\n className='donut-sub-note text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold'\r\n >\r\n {subNote}\r\n </P>\r\n ) : typeof mainText === 'string' || !mainText ? null : (\r\n <P\r\n size='base'\r\n marginBottom='none'\r\n leading='none'\r\n className='donut-label text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold'\r\n >\r\n {mainText.label}\r\n </P>\r\n )}\r\n </div>\r\n </foreignObject>\r\n ) : null}\r\n <circle\r\n cx={0}\r\n cy={0}\r\n r={radius - strokeWidth / 2}\r\n fill='none'\r\n stroke={trackColor}\r\n strokeWidth={strokeWidth}\r\n />\r\n <AnimatePresence>\r\n {pieData(data as any).map((d, i) => (\r\n <motion.path\r\n key={i}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d: getArc(\r\n 0,\r\n 0,\r\n radius - strokeWidth / 2,\r\n d.startAngle - Math.PI / 2,\r\n d.endAngle - Math.PI / 2,\r\n ),\r\n opacity: mouseOverData\r\n ? mouseOverData.label === (d.data as any).label\r\n ? 1\r\n : 0.3\r\n : 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d: getArc(\r\n 0,\r\n 0,\r\n radius - strokeWidth / 2,\r\n d.startAngle - Math.PI / 2,\r\n d.endAngle - Math.PI / 2,\r\n ),\r\n opacity: mouseOverData\r\n ? mouseOverData.label === (d.data as any).label\r\n ? 1\r\n : 0.3\r\n : 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n style={{\r\n stroke:\r\n colorDomain.indexOf((d.data as any).label) !== -1\r\n ? colors[colorDomain.indexOf((d.data as any).label) % colors.length]\r\n : Colors.gray,\r\n strokeWidth,\r\n fill: 'none',\r\n }}\r\n onMouseEnter={event => {\r\n setMouseOverData(d.data);\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.data) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d.data);\r\n if (onSeriesMouseClick) onSeriesMouseClick(d.data);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d.data);\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 ))}\r\n </AnimatePresence>\r\n </motion.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 { useEffect, useRef, useState } from 'react';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport orderBy from 'lodash.orderby';\r\nimport { Spacer } from '@undp/design-system-react/Spacer';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n DonutChartDataType,\r\n Languages,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\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: DonutChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for each segment */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: 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 /** Radius of the donut chart */\r\n radius?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Max width of the color scale as a css property */\r\n colorScaleMaxWidth?: string;\r\n /** Stroke width of the arcs and circle of the donut */\r\n strokeWidth?: number;\r\n /** Sorting order for data. This is overwritten by labelOrder prop */\r\n sortData?: 'asc' | 'desc';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Large text at the center of the donut chart. If the type is an object then the text is the value in the data for the label mentioned in the object */\r\n mainText?: string | { label: string; suffix?: string; prefix?: string };\r\n /** Small text at the center of the donut chart */\r\n subNote?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Track color (i.e. the color of the donut chart's background) of the donut chart */\r\n trackColor?: 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 /** 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 DonutChart(props: Props) {\r\n const {\r\n mainText,\r\n graphTitle,\r\n colors = Colors.light.categoricalColors.colors,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n strokeWidth = 50,\r\n graphDescription,\r\n subNote,\r\n footNote,\r\n radius,\r\n data,\r\n showColorScale = true,\r\n padding,\r\n backgroundColor = false,\r\n tooltip,\r\n onSeriesMouseOver,\r\n graphID,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n colorDomain,\r\n sortData,\r\n language = 'en',\r\n theme = 'light',\r\n width,\r\n height,\r\n minHeight = 0,\r\n relativeHeight,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n colorScaleMaxWidth,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n precision = 2,\r\n animate = false,\r\n trackColor = Colors.light.grays['gray-200'],\r\n } = props;\r\n\r\n const [graphRadius, setGraphRadius] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setGraphRadius(\r\n (Math.min(\r\n ...[entries[0].target.clientWidth || 620, entries[0].target.clientHeight || 480],\r\n ) || 420) / 2,\r\n );\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 const sortedData = sortData ? orderBy(data, ['size'], [sortData]) : data;\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 ? (\r\n <>\r\n <div\r\n className={cn(\r\n 'leading-0 flex mb-0 ml-auto mr-auto justify-center gap-x-3 gap-y-0 flex-wrap',\r\n classNames?.colorLegend,\r\n )}\r\n style={{ maxWidth: colorScaleMaxWidth }}\r\n aria-label='Color legend'\r\n >\r\n {sortedData.map((d, i) => (\r\n <div className='flex gap-2 items-center pb-3' key={i}>\r\n <div\r\n className='w-3 h-3 rounded-full'\r\n style={{\r\n backgroundColor:\r\n (colorDomain || sortedData.map(el => el.label)).indexOf(d.label) !== -1\r\n ? (colors || Colors[theme].categoricalColors.colors)[\r\n (colorDomain || sortedData.map(el => el.label)).indexOf(d.label) %\r\n (colors || Colors[theme].categoricalColors.colors).length\r\n ]\r\n : Colors.gray,\r\n }}\r\n />\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' style={{ fontSize: 'inherit' }}>\r\n {numberFormattingFunction(d.size, 'NA', precision, prefix, suffix)}\r\n </span>\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n <Spacer size='lg' />\r\n </>\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {graphRadius && data.length > 0 ? (\r\n <Graph\r\n mainText={mainText}\r\n data={sortedData}\r\n colors={colors}\r\n radius={radius || graphRadius}\r\n subNote={subNote}\r\n strokeWidth={strokeWidth}\r\n tooltip={tooltip}\r\n colorDomain={colorDomain || sortedData.map(d => d.label)}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n precision={precision}\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 trackColor={trackColor}\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":["pi","tau","descending","a","b","identity","d","pie","value","sortValues","sort","startAngle","constant","endAngle","padAngle","data","i","n","array","j","k","sum","index","arcs","a0","da","a1","p","pa","v","_","polarToCartesian","centerX","centerY","radius","angleInRadians","x","Math","cos","y","sin","getArc","startAngleInRadians","endAngleInRadians","start","end","PI","largeArcFlag","join","Graph","props","$","_c","mainText","colors","subNote","strokeWidth","tooltip","onSeriesMouseOver","onSeriesMouseClick","colorDomain","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","precision","animate","trackColor","svgRef","useRef","t0","amount","once","isInView","useInView","pieData","_temp","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","eventX","setEventX","eventY","setEventY","t1","motion","t2","t3","t4","t5","t6","t7","t8","t9","jsx","jsxs","H2","findIndex","d_1","label","numberFormattingFunction","d_0","size","prefix","suffix","P","t10","t11","T0","AnimatePresence","t12","duration","d_2","initial","pathLength","opacity","whileInView","transition","stroke","indexOf","length","Colors","gray","fill","event","clientY","clientX","isEqual","event_0","t13","map","t14","t15","g","t16","svg","t17","Tooltip","t18","modal","DetailsModal","t19","Fragment","DonutChart","graphTitle","light","categoricalColors","sources","graphDescription","footNote","showColorScale","padding","backgroundColor","graphID","graphDownload","dataDownload","sortData","language","theme","width","height","minHeight","relativeHeight","ariaLabel","colorScaleMaxWidth","grays","graphRadius","setGraphRadius","graphDiv","graphParentDiv","useEffect","resizeObserver","ResizeObserver","entries","min","target","clientWidth","clientHeight","current","observe","disconnect","sortedData","orderBy","GraphContainer","graphContainer","GraphHeader","title","description","filter","cn","colorLegend","maxWidth","el","fontSize","Spacer","GraphArea","EmptyState","GraphFooter","footnote","source"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -1,108 +1,108 @@
1
- import { c as mt, j as o, m as dt } from "./index-CHPV5EwG-Curnpaqc.js";
1
+ import { c as mt, j as n, m as dt } from "./index-CHPV5EwG-Curnpaqc.js";
2
2
  import { useRef as rt, useState as tt, useEffect as pt } from "react";
3
3
  import { v as ft, j as it } from "./Typography-PxtFcnJb.js";
4
4
  import { o as gt } from "./index-BZQYSqar.js";
5
5
  import { n as ht } from "./Source-DwTHB8fn.js";
6
6
  import { i as xt } from "./index-Bwrro8-q.js";
7
7
  import { T as yt } from "./Tooltip-Dj5eVppQ.js";
8
- import { Colors as R } from "./Colors.js";
8
+ import { Colors as X } from "./Colors.js";
9
9
  import { n as ct } from "./numberFormattingFunction-14YCbkN2.js";
10
10
  import { D as vt } from "./DetailsModal-0Ry5nXiC.js";
11
11
  import { c as T, a as bt } from "./array-USo-Szhp.js";
12
12
  import { u as jt } from "./use-in-view-Cxa7y1TH.js";
13
13
  import { A as Mt } from "./index-BqfRwk1n.js";
14
- import { m as ot } from "./proxy-BxkFHwUw.js";
14
+ import { m as nt } from "./proxy-BxkFHwUw.js";
15
15
  import { GraphFooter as Nt } from "./GraphFooter.js";
16
16
  import { GraphHeader as Ct } from "./GraphHeader.js";
17
- import { E as Dt } from "./EmptyState-BZo1BbAn.js";
17
+ import { E as Dt } from "./EmptyState-C7ZXkZWd.js";
18
18
  import { G as kt, a as At } from "./GraphContainer-CRqzdKu2.js";
19
19
  const wt = Math.PI, at = 2 * wt;
20
20
  function Ot(s, t) {
21
21
  return t < s ? -1 : t > s ? 1 : t >= s ? 0 : NaN;
22
22
  }
23
- function St(s) {
23
+ function Pt(s) {
24
24
  return s;
25
25
  }
26
- function zt() {
27
- var s = St, t = Ot, n = null, c = T(0), a = T(at), d = T(0);
26
+ function St() {
27
+ var s = Pt, t = Ot, o = null, c = T(0), a = T(at), p = T(0);
28
28
  function r(e) {
29
- var l, x = (e = bt(e)).length, p, C, f = 0, g = new Array(x), b = new Array(x), y = +c.apply(this, arguments), S = Math.min(at, Math.max(-at, a.apply(this, arguments) - y)), m, P = Math.min(Math.abs(S) / x, d.apply(this, arguments)), G = P * (S < 0 ? -1 : 1), h;
29
+ var l, x = (e = bt(e)).length, f, O, m = 0, g = new Array(x), b = new Array(x), y = +c.apply(this, arguments), P = Math.min(at, Math.max(-at, a.apply(this, arguments) - y)), d, I = Math.min(Math.abs(P) / x, p.apply(this, arguments)), G = I * (P < 0 ? -1 : 1), h;
30
30
  for (l = 0; l < x; ++l)
31
- (h = b[g[l] = l] = +s(e[l], l, e)) > 0 && (f += h);
32
- for (t != null ? g.sort(function(D, z) {
33
- return t(b[D], b[z]);
34
- }) : n != null && g.sort(function(D, z) {
35
- return n(e[D], e[z]);
36
- }), l = 0, C = f ? (S - x * G) / f : 0; l < x; ++l, y = m)
37
- p = g[l], h = b[p], m = y + (h > 0 ? h * C : 0) + G, b[p] = {
38
- data: e[p],
31
+ (h = b[g[l] = l] = +s(e[l], l, e)) > 0 && (m += h);
32
+ for (t != null ? g.sort(function(C, S) {
33
+ return t(b[C], b[S]);
34
+ }) : o != null && g.sort(function(C, S) {
35
+ return o(e[C], e[S]);
36
+ }), l = 0, O = m ? (P - x * G) / m : 0; l < x; ++l, y = d)
37
+ f = g[l], h = b[f], d = y + (h > 0 ? h * O : 0) + G, b[f] = {
38
+ data: e[f],
39
39
  index: l,
40
40
  value: h,
41
41
  startAngle: y,
42
- endAngle: m,
43
- padAngle: P
42
+ endAngle: d,
43
+ padAngle: I
44
44
  };
45
45
  return b;
46
46
  }
47
47
  return r.value = function(e) {
48
48
  return arguments.length ? (s = typeof e == "function" ? e : T(+e), r) : s;
49
49
  }, r.sortValues = function(e) {
50
- return arguments.length ? (t = e, n = null, r) : t;
50
+ return arguments.length ? (t = e, o = null, r) : t;
51
51
  }, r.sort = function(e) {
52
- return arguments.length ? (n = e, t = null, r) : n;
52
+ return arguments.length ? (o = e, t = null, r) : o;
53
53
  }, r.startAngle = function(e) {
54
54
  return arguments.length ? (c = typeof e == "function" ? e : T(+e), r) : c;
55
55
  }, r.endAngle = function(e) {
56
56
  return arguments.length ? (a = typeof e == "function" ? e : T(+e), r) : a;
57
57
  }, r.padAngle = function(e) {
58
- return arguments.length ? (d = typeof e == "function" ? e : T(+e), r) : d;
58
+ return arguments.length ? (p = typeof e == "function" ? e : T(+e), r) : p;
59
59
  }, r;
60
60
  }
61
- const lt = (s, t, n, c) => ({
62
- x: s + n * Math.cos(c),
63
- y: t + n * Math.sin(c)
61
+ const lt = (s, t, o, c) => ({
62
+ x: s + o * Math.cos(c),
63
+ y: t + o * Math.sin(c)
64
64
  });
65
- function st(s, t, n, c, a) {
66
- const d = lt(s, t, n, c), r = lt(s, t, n, a), e = a - c <= Math.PI ? "0" : "1";
67
- return ["M", d.x, d.y, "A", n, n, 0, e, 1, r.x, r.y].join(" ");
65
+ function st(s, t, o, c, a) {
66
+ const p = lt(s, t, o, c), r = lt(s, t, o, a === 2 * Math.PI ? 1.9999999999 * Math.PI : a), e = a - c <= Math.PI ? "0" : "1";
67
+ return ["M", p.x, p.y, "A", o, o, 0, e, 1, r.x, r.y].join(" ");
68
68
  }
69
- function It(s) {
69
+ function zt(s) {
70
70
  const t = mt.c(59), {
71
- mainText: n,
71
+ mainText: o,
72
72
  data: c,
73
73
  radius: a,
74
- colors: d,
74
+ colors: p,
75
75
  subNote: r,
76
76
  strokeWidth: e,
77
77
  tooltip: l,
78
78
  onSeriesMouseOver: x,
79
- onSeriesMouseClick: p,
80
- colorDomain: C,
81
- resetSelectionOnDoubleClick: f,
79
+ onSeriesMouseClick: f,
80
+ colorDomain: O,
81
+ resetSelectionOnDoubleClick: m,
82
82
  detailsOnClick: g,
83
83
  styles: b,
84
84
  classNames: y,
85
- precision: S,
86
- animate: m,
87
- trackColor: P
85
+ precision: P,
86
+ animate: d,
87
+ trackColor: I
88
88
  } = s, G = rt(null);
89
89
  let h;
90
- t[0] !== m.amount || t[1] !== m.once ? (h = {
91
- once: m.once,
92
- amount: m.amount
93
- }, t[0] = m.amount, t[1] = m.once, t[2] = h) : h = t[2];
94
- const D = jt(G, h), z = zt().sort(null).startAngle(0).value(Pt), [v, X] = tt(void 0), [j, M] = tt(void 0), [$, Y] = tt(void 0), [B, q] = tt(void 0), J = ot, K = `${a * 2}px`, Q = `${a * 2}px`, k = `0 0 ${a * 2} ${a * 2}`, E = "ltr", et = "mx-auto", F = ot, U = `translate(${a} ${a})`;
95
- let I;
96
- t[3] !== c || t[4] !== n || t[5] !== S || t[6] !== a || t[7] !== e || t[8] !== r ? (I = n || r ? /* @__PURE__ */ o.jsx("foreignObject", { y: 0 - (a - e), x: 0 - (a - e), width: 2 * (a - e), height: 2 * (a - e), children: /* @__PURE__ */ o.jsxs("div", { className: "flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-4", children: [
97
- n ? /* @__PURE__ */ o.jsx(ft, { marginBottom: "none", className: "donut-main-text text-primary-gray-700 dark:text-primary-gray-100 leading-none text-center", children: typeof n == "string" ? n : c.findIndex((u) => u.label === n.label) !== -1 ? ct(c[c.findIndex((u) => u.label === n.label)].size, "NA", S, n.prefix, n.suffix) : "NA" }) : null,
98
- r ? /* @__PURE__ */ o.jsx(it, { marginBottom: "none", size: "base", leading: "none", className: "donut-sub-note text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold", children: r }) : typeof n == "string" || !n ? null : /* @__PURE__ */ o.jsx(it, { size: "base", marginBottom: "none", leading: "none", className: "donut-label text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold", children: n.label })
99
- ] }) }) : null, t[3] = c, t[4] = n, t[5] = S, t[6] = a, t[7] = e, t[8] = r, t[9] = I) : I = t[9];
90
+ t[0] !== d.amount || t[1] !== d.once ? (h = {
91
+ once: d.once,
92
+ amount: d.amount
93
+ }, t[0] = d.amount, t[1] = d.once, t[2] = h) : h = t[2];
94
+ const C = jt(G, h), S = St().sort(null).startAngle(0).value(It), [v, Y] = tt(void 0), [j, M] = tt(void 0), [$, R] = tt(void 0), [B, q] = tt(void 0), J = nt, K = `${a * 2}px`, Q = `${a * 2}px`, D = `0 0 ${a * 2} ${a * 2}`, E = "ltr", et = "mx-auto", F = nt, U = `translate(${a} ${a})`;
95
+ let z;
96
+ t[3] !== c || t[4] !== o || t[5] !== P || t[6] !== a || t[7] !== e || t[8] !== r ? (z = o || r ? /* @__PURE__ */ n.jsx("foreignObject", { y: 0 - (a - e), x: 0 - (a - e), width: 2 * (a - e), height: 2 * (a - e), children: /* @__PURE__ */ n.jsxs("div", { className: "flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-4", children: [
97
+ o ? /* @__PURE__ */ n.jsx(ft, { marginBottom: "none", className: "donut-main-text text-primary-gray-700 dark:text-primary-gray-100 leading-none text-center", children: typeof o == "string" ? o : c.findIndex((u) => u.label === o.label) !== -1 ? ct(c[c.findIndex((u) => u.label === o.label)].size, "NA", P, o.prefix, o.suffix) : "NA" }) : null,
98
+ r ? /* @__PURE__ */ n.jsx(it, { marginBottom: "none", size: "base", leading: "none", className: "donut-sub-note text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold", children: r }) : typeof o == "string" || !o ? null : /* @__PURE__ */ n.jsx(it, { size: "base", marginBottom: "none", leading: "none", className: "donut-label text-primary-gray-700 dark:text-primary-gray-100 text-center font-bold", children: o.label })
99
+ ] }) }) : null, t[3] = c, t[4] = o, t[5] = P, t[6] = a, t[7] = e, t[8] = r, t[9] = z) : z = t[9];
100
100
  const Z = a - e / 2;
101
- let A;
102
- t[10] !== e || t[11] !== Z || t[12] !== P ? (A = /* @__PURE__ */ o.jsx("circle", { cx: 0, cy: 0, r: Z, fill: "none", stroke: P, strokeWidth: e }), t[10] = e, t[11] = Z, t[12] = P, t[13] = A) : A = t[13];
101
+ let k;
102
+ t[10] !== e || t[11] !== Z || t[12] !== I ? (k = /* @__PURE__ */ n.jsx("circle", { cx: 0, cy: 0, r: Z, fill: "none", stroke: I, strokeWidth: e }), t[10] = e, t[11] = Z, t[12] = I, t[13] = k) : k = t[13];
103
103
  const V = Mt;
104
- let w;
105
- t[14] !== m.duration || t[15] !== C || t[16] !== d || t[17] !== g || t[18] !== D || t[19] !== j || t[20] !== v || t[21] !== p || t[22] !== x || t[23] !== a || t[24] !== f || t[25] !== M || t[26] !== e ? (w = (u, ut) => /* @__PURE__ */ o.jsx(ot.path, { variants: {
104
+ let A;
105
+ t[14] !== d.duration || t[15] !== O || t[16] !== p || t[17] !== g || t[18] !== C || t[19] !== j || t[20] !== v || t[21] !== f || t[22] !== x || t[23] !== a || t[24] !== m || t[25] !== M || t[26] !== e ? (A = (u, ut) => /* @__PURE__ */ n.jsx(nt.path, { variants: {
106
106
  initial: {
107
107
  pathLength: 0,
108
108
  d: st(0, 0, a - e / 2, u.startAngle - Math.PI / 2, u.endAngle - Math.PI / 2),
@@ -113,126 +113,129 @@ function It(s) {
113
113
  d: st(0, 0, a - e / 2, u.startAngle - Math.PI / 2, u.endAngle - Math.PI / 2),
114
114
  opacity: v ? v.label === u.data.label ? 1 : 0.3 : 1,
115
115
  transition: {
116
- duration: m.duration
116
+ duration: d.duration
117
117
  }
118
118
  }
119
- }, initial: "initial", animate: D ? "whileInView" : "initial", exit: {
119
+ }, initial: "initial", animate: C ? "whileInView" : "initial", exit: {
120
120
  opacity: 0,
121
121
  transition: {
122
- duration: m.duration
122
+ duration: d.duration
123
123
  }
124
124
  }, style: {
125
- stroke: C.indexOf(u.data.label) !== -1 ? d[C.indexOf(u.data.label) % d.length] : R.gray,
125
+ stroke: O.indexOf(u.data.label) !== -1 ? p[O.indexOf(u.data.label) % p.length] : X.gray,
126
126
  strokeWidth: e,
127
127
  fill: "none"
128
128
  }, onMouseEnter: (_) => {
129
- X(u.data), q(_.clientY), Y(_.clientX), x?.(u);
129
+ Y(u.data), q(_.clientY), R(_.clientX), x?.(u);
130
130
  }, onClick: () => {
131
- (p || g) && (xt(j, u.data) && f ? (M(void 0), p?.(void 0)) : (M(u.data), p && p(u.data)));
131
+ (f || g) && (xt(j, u.data) && m ? (M(void 0), f?.(void 0)) : (M(u.data), f && f(u.data)));
132
132
  }, onMouseMove: (_) => {
133
- X(u.data), q(_.clientY), Y(_.clientX);
133
+ Y(u.data), q(_.clientY), R(_.clientX);
134
134
  }, onMouseLeave: () => {
135
- X(void 0), Y(void 0), q(void 0), x?.(void 0);
136
- } }, ut), t[14] = m.duration, t[15] = C, t[16] = d, t[17] = g, t[18] = D, t[19] = j, t[20] = v, t[21] = p, t[22] = x, t[23] = a, t[24] = f, t[25] = M, t[26] = e, t[27] = w) : w = t[27];
137
- const i = z(c).map(w);
135
+ Y(void 0), R(void 0), q(void 0), x?.(void 0);
136
+ } }, ut), t[14] = d.duration, t[15] = O, t[16] = p, t[17] = g, t[18] = C, t[19] = j, t[20] = v, t[21] = f, t[22] = x, t[23] = a, t[24] = m, t[25] = M, t[26] = e, t[27] = A) : A = t[27];
137
+ const i = S(c).map(A);
138
138
  let N;
139
- t[28] !== V || t[29] !== i ? (N = /* @__PURE__ */ o.jsx(V, { children: i }), t[28] = V, t[29] = i, t[30] = N) : N = t[30];
140
- let O;
141
- t[31] !== A || t[32] !== N || t[33] !== F.g || t[34] !== U || t[35] !== I ? (O = /* @__PURE__ */ o.jsxs(F.g, { transform: U, children: [
142
- I,
143
- A,
139
+ t[28] !== V || t[29] !== i ? (N = /* @__PURE__ */ n.jsx(V, { children: i }), t[28] = V, t[29] = i, t[30] = N) : N = t[30];
140
+ let w;
141
+ t[31] !== k || t[32] !== N || t[33] !== F.g || t[34] !== U || t[35] !== z ? (w = /* @__PURE__ */ n.jsxs(F.g, { transform: U, children: [
142
+ z,
143
+ k,
144
144
  N
145
- ] }), t[31] = A, t[32] = N, t[33] = F.g, t[34] = U, t[35] = I, t[36] = O) : O = t[36];
145
+ ] }), t[31] = k, t[32] = N, t[33] = F.g, t[34] = U, t[35] = z, t[36] = w) : w = t[36];
146
146
  let L;
147
- t[37] !== J.svg || t[38] !== O || t[39] !== K || t[40] !== Q || t[41] !== k ? (L = /* @__PURE__ */ o.jsx(J.svg, { ref: G, width: K, height: Q, viewBox: k, direction: E, className: et, children: O }), t[37] = J.svg, t[38] = O, t[39] = K, t[40] = Q, t[41] = k, t[42] = L) : L = t[42];
147
+ t[37] !== J.svg || t[38] !== w || t[39] !== K || t[40] !== Q || t[41] !== D ? (L = /* @__PURE__ */ n.jsx(J.svg, { ref: G, width: K, height: Q, viewBox: D, direction: E, className: et, children: w }), t[37] = J.svg, t[38] = w, t[39] = K, t[40] = Q, t[41] = D, t[42] = L) : L = t[42];
148
148
  let W;
149
- t[43] !== y?.tooltip || t[44] !== $ || t[45] !== B || t[46] !== v || t[47] !== b?.tooltip || t[48] !== l ? (W = v && l && $ && B ? /* @__PURE__ */ o.jsx(yt, { data: v, body: l, xPos: $, yPos: B, backgroundStyle: b?.tooltip, className: y?.tooltip }) : null, t[43] = y?.tooltip, t[44] = $, t[45] = B, t[46] = v, t[47] = b?.tooltip, t[48] = l, t[49] = W) : W = t[49];
149
+ t[43] !== y?.tooltip || t[44] !== $ || t[45] !== B || t[46] !== v || t[47] !== b?.tooltip || t[48] !== l ? (W = v && l && $ && B ? /* @__PURE__ */ n.jsx(yt, { data: v, body: l, xPos: $, yPos: B, backgroundStyle: b?.tooltip, className: y?.tooltip }) : null, t[43] = y?.tooltip, t[44] = $, t[45] = B, t[46] = v, t[47] = b?.tooltip, t[48] = l, t[49] = W) : W = t[49];
150
150
  let H;
151
- t[50] !== y?.modal || t[51] !== g || t[52] !== j || t[53] !== M ? (H = g && j !== void 0 ? /* @__PURE__ */ o.jsx(vt, { body: g, data: j, setData: M, className: y?.modal }) : null, t[50] = y?.modal, t[51] = g, t[52] = j, t[53] = M, t[54] = H) : H = t[54];
152
- let nt;
153
- return t[55] !== L || t[56] !== W || t[57] !== H ? (nt = /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
151
+ t[50] !== y?.modal || t[51] !== g || t[52] !== j || t[53] !== M ? (H = g && j !== void 0 ? /* @__PURE__ */ n.jsx(vt, { body: g, data: j, setData: M, className: y?.modal }) : null, t[50] = y?.modal, t[51] = g, t[52] = j, t[53] = M, t[54] = H) : H = t[54];
152
+ let ot;
153
+ return t[55] !== L || t[56] !== W || t[57] !== H ? (ot = /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
154
154
  L,
155
155
  W,
156
156
  H
157
- ] }), t[55] = L, t[56] = W, t[57] = H, t[58] = nt) : nt = t[58], nt;
157
+ ] }), t[55] = L, t[56] = W, t[57] = H, t[58] = ot) : ot = t[58], ot;
158
158
  }
159
- function Pt(s) {
159
+ function It(s) {
160
160
  return s.size;
161
161
  }
162
162
  function Zt(s) {
163
163
  const {
164
164
  mainText: t,
165
- graphTitle: n,
166
- colors: c = R.light.categoricalColors.colors,
165
+ graphTitle: o,
166
+ colors: c = X.light.categoricalColors.colors,
167
167
  suffix: a = "",
168
- sources: d,
168
+ sources: p,
169
169
  prefix: r = "",
170
170
  strokeWidth: e = 50,
171
171
  graphDescription: l,
172
172
  subNote: x,
173
- footNote: p,
174
- radius: C,
175
- data: f,
173
+ footNote: f,
174
+ radius: O,
175
+ data: m,
176
176
  showColorScale: g = !0,
177
177
  padding: b,
178
178
  backgroundColor: y = !1,
179
- tooltip: S,
180
- onSeriesMouseOver: m,
181
- graphID: P,
179
+ tooltip: P,
180
+ onSeriesMouseOver: d,
181
+ graphID: I,
182
182
  onSeriesMouseClick: G,
183
183
  graphDownload: h = !1,
184
- dataDownload: D = !1,
185
- colorDomain: z,
184
+ dataDownload: C = !1,
185
+ colorDomain: S,
186
186
  sortData: v,
187
- language: X = "en",
187
+ language: Y = "en",
188
188
  theme: j = "light",
189
189
  width: M,
190
190
  height: $,
191
- minHeight: Y = 0,
191
+ minHeight: R = 0,
192
192
  relativeHeight: B,
193
193
  ariaLabel: q,
194
194
  resetSelectionOnDoubleClick: J = !0,
195
195
  colorScaleMaxWidth: K,
196
196
  detailsOnClick: Q,
197
- styles: k,
197
+ styles: D,
198
198
  classNames: E,
199
199
  precision: et = 2,
200
200
  animate: F = !1,
201
- trackColor: U = R.light.grays["gray-200"]
202
- } = s, [I, Z] = tt(0), A = rt(null), V = rt(null);
201
+ trackColor: U = X.light.grays["gray-200"]
202
+ } = s, [z, Z] = tt(0), k = rt(null), V = rt(null);
203
203
  pt(() => {
204
204
  const i = new ResizeObserver((N) => {
205
- Z((Math.min(N[0].target.clientWidth || 620, N[0].target.clientHeight || 480, C || 1 / 0) || 420) / 2);
205
+ Z((Math.min(N[0].target.clientWidth || 620, N[0].target.clientHeight || 480) || 420) / 2);
206
206
  });
207
- return A.current && i.observe(A.current), () => i.disconnect();
208
- }, [C]);
209
- const w = v ? gt(f, ["size"], [v]) : f;
210
- return /* @__PURE__ */ o.jsxs(kt, { className: E?.graphContainer, style: k?.graphContainer, id: P, ref: V, "aria-label": q, backgroundColor: y, theme: j, language: X, minHeight: Y, width: M, height: $, relativeHeight: B, padding: b, children: [
211
- n || l || h || D ? /* @__PURE__ */ o.jsx(Ct, { styles: {
212
- title: k?.title,
213
- description: k?.description
207
+ return k.current && i.observe(k.current), () => i.disconnect();
208
+ }, []);
209
+ const A = v ? gt(m, ["size"], [v]) : m;
210
+ return /* @__PURE__ */ n.jsxs(kt, { className: E?.graphContainer, style: D?.graphContainer, id: I, ref: V, "aria-label": q, backgroundColor: y, theme: j, language: Y, minHeight: R, width: M, height: $, relativeHeight: B, padding: b, children: [
211
+ o || l || h || C ? /* @__PURE__ */ n.jsx(Ct, { styles: {
212
+ title: D?.title,
213
+ description: D?.description
214
214
  }, classNames: {
215
215
  title: E?.title,
216
216
  description: E?.description
217
- }, graphTitle: n, graphDescription: l, width: M, graphDownload: h ? V : void 0, dataDownload: D ? f.map((i) => i.data).filter((i) => i !== void 0).length > 0 ? f.map((i) => i.data).filter((i) => i !== void 0) : f.filter((i) => i !== void 0) : null }) : null,
218
- f.length === 0 ? /* @__PURE__ */ o.jsx(Dt, {}) : /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
219
- g ? /* @__PURE__ */ o.jsx("div", { className: dt("leading-0 flex mb-0 ml-auto mr-auto justify-center gap-x-3 gap-y-0 flex-wrap", E?.colorLegend), style: {
217
+ }, graphTitle: o, graphDescription: l, width: M, graphDownload: h ? V : void 0, dataDownload: C ? m.map((i) => i.data).filter((i) => i !== void 0).length > 0 ? m.map((i) => i.data).filter((i) => i !== void 0) : m.filter((i) => i !== void 0) : null }) : null,
218
+ g && m.length > 0 ? /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
219
+ /* @__PURE__ */ n.jsx("div", { className: dt("leading-0 flex mb-0 ml-auto mr-auto justify-center gap-x-3 gap-y-0 flex-wrap", E?.colorLegend), style: {
220
220
  maxWidth: K
221
- }, "aria-label": "Color legend", children: w.map((i, N) => /* @__PURE__ */ o.jsxs("div", { className: "flex gap-2 items-center pb-3", children: [
222
- /* @__PURE__ */ o.jsx("div", { className: "w-3 h-3 rounded-full", style: {
223
- backgroundColor: (z || w.map((O) => O.label)).indexOf(i.label) !== -1 ? (c || R[j].categoricalColors.colors)[(z || w.map((O) => O.label)).indexOf(i.label) % (c || R[j].categoricalColors.colors).length] : R.gray
221
+ }, "aria-label": "Color legend", children: A.map((i, N) => /* @__PURE__ */ n.jsxs("div", { className: "flex gap-2 items-center pb-3", children: [
222
+ /* @__PURE__ */ n.jsx("div", { className: "w-3 h-3 rounded-full", style: {
223
+ backgroundColor: (S || A.map((w) => w.label)).indexOf(i.label) !== -1 ? (c || X[j].categoricalColors.colors)[(S || A.map((w) => w.label)).indexOf(i.label) % (c || X[j].categoricalColors.colors).length] : X.gray
224
224
  } }),
225
- /* @__PURE__ */ o.jsxs(it, { marginBottom: "none", size: "sm", className: "text-primary-gray-700 dark:text-primary-gray-100", children: [
225
+ /* @__PURE__ */ n.jsxs(it, { marginBottom: "none", size: "sm", className: "text-primary-gray-700 dark:text-primary-gray-100", children: [
226
226
  i.label,
227
227
  ":",
228
228
  " ",
229
- /* @__PURE__ */ o.jsx("span", { className: "font-bold", style: {
229
+ /* @__PURE__ */ n.jsx("span", { className: "font-bold", style: {
230
230
  fontSize: "inherit"
231
231
  }, children: ct(i.size, "NA", et, r, a) })
232
232
  ] })
233
- ] }, N)) }) : null,
234
- /* @__PURE__ */ o.jsx(ht, { size: "lg" }),
235
- /* @__PURE__ */ o.jsx(At, { ref: A, children: I ? /* @__PURE__ */ o.jsx(It, { mainText: t, data: w, colors: c, radius: I, subNote: x, strokeWidth: e, tooltip: S, colorDomain: z || w.map((i) => i.label), onSeriesMouseOver: m, onSeriesMouseClick: G, resetSelectionOnDoubleClick: J, styles: k, detailsOnClick: Q, precision: et, animate: F === !0 ? {
233
+ ] }, N)) }),
234
+ /* @__PURE__ */ n.jsx(ht, { size: "lg" })
235
+ ] }) : null,
236
+ /* @__PURE__ */ n.jsxs(At, { ref: k, children: [
237
+ m.length === 0 && /* @__PURE__ */ n.jsx(Dt, {}),
238
+ z && m.length > 0 ? /* @__PURE__ */ n.jsx(zt, { mainText: t, data: A, colors: c, radius: O || z, subNote: x, strokeWidth: e, tooltip: P, colorDomain: S || A.map((i) => i.label), onSeriesMouseOver: d, onSeriesMouseClick: G, resetSelectionOnDoubleClick: J, styles: D, detailsOnClick: Q, precision: et, animate: F === !0 ? {
236
239
  duration: 0.5,
237
240
  once: !0,
238
241
  amount: 0.5
@@ -240,15 +243,15 @@ function Zt(s) {
240
243
  duration: 0,
241
244
  once: !0,
242
245
  amount: 0
243
- }, trackColor: U }) : null })
246
+ }, trackColor: U }) : null
244
247
  ] }),
245
- d || p ? /* @__PURE__ */ o.jsx(Nt, { styles: {
246
- footnote: k?.footnote,
247
- source: k?.source
248
+ p || f ? /* @__PURE__ */ n.jsx(Nt, { styles: {
249
+ footnote: D?.footnote,
250
+ source: D?.source
248
251
  }, classNames: {
249
252
  footnote: E?.footnote,
250
253
  source: E?.source
251
- }, sources: d, footNote: p, width: M }) : null
254
+ }, sources: p, footNote: f, width: M }) : null
252
255
  ] });
253
256
  }
254
257
  export {