@undp/data-viz 2.1.2 → 2.1.4

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 (162) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.js +281 -274
  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/BulletChart.cjs +1 -1
  15. package/dist/BulletChart.cjs.map +1 -1
  16. package/dist/BulletChart.js +367 -356
  17. package/dist/BulletChart.js.map +1 -1
  18. package/dist/ButterflyChart.cjs +1 -1
  19. package/dist/ButterflyChart.cjs.map +1 -1
  20. package/dist/ButterflyChart.js +224 -217
  21. package/dist/ButterflyChart.js.map +1 -1
  22. package/dist/CirclePackingGraph.cjs +1 -1
  23. package/dist/CirclePackingGraph.js +2 -2
  24. package/dist/DifferenceLineChart.cjs +1 -1
  25. package/dist/DifferenceLineChart.cjs.map +1 -1
  26. package/dist/DifferenceLineChart.js +406 -399
  27. package/dist/DifferenceLineChart.js.map +1 -1
  28. package/dist/DonutChart.cjs +1 -1
  29. package/dist/DonutChart.cjs.map +1 -1
  30. package/dist/DonutChart.d.ts +10 -0
  31. package/dist/DonutChart.js +232 -263
  32. package/dist/DonutChart.js.map +1 -1
  33. package/dist/DualAxisLineChart.cjs +1 -1
  34. package/dist/DualAxisLineChart.cjs.map +1 -1
  35. package/dist/DualAxisLineChart.js +320 -313
  36. package/dist/DualAxisLineChart.js.map +1 -1
  37. package/dist/DumbbellChart.cjs +1 -1
  38. package/dist/DumbbellChart.cjs.map +1 -1
  39. package/dist/DumbbellChart.js +298 -291
  40. package/dist/DumbbellChart.js.map +1 -1
  41. package/dist/{EmptyState-BZo1BbAn.js → EmptyState-C7ZXkZWd.js} +4 -4
  42. package/dist/EmptyState-C7ZXkZWd.js.map +1 -0
  43. package/dist/EmptyState-gLDRXBHm.cjs +2 -0
  44. package/dist/EmptyState-gLDRXBHm.cjs.map +1 -0
  45. package/dist/GraphEl-C2Fgg8PA.cjs +2 -0
  46. package/dist/GraphEl-C2Fgg8PA.cjs.map +1 -0
  47. package/dist/{GraphEl-sVZvlyWe.js → GraphEl-oZwZiTHI.js} +6 -3
  48. package/dist/GraphEl-oZwZiTHI.js.map +1 -0
  49. package/dist/GriddedGraphs.cjs +1 -1
  50. package/dist/GriddedGraphs.d.ts +1 -0
  51. package/dist/GriddedGraphs.js +1 -1
  52. package/dist/GriddedGraphsFromConfig.d.ts +1 -0
  53. package/dist/HeatMap.cjs +1 -1
  54. package/dist/HeatMap.cjs.map +1 -1
  55. package/dist/HeatMap.js +179 -172
  56. package/dist/HeatMap.js.map +1 -1
  57. package/dist/Histogram.cjs +1 -1
  58. package/dist/Histogram.js +1 -1
  59. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  60. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  61. package/dist/LineChartWithConfidenceInterval.js +370 -363
  62. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  63. package/dist/MultiGraphDashboard.d.ts +1 -0
  64. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
  65. package/dist/MultiLineAltChart.cjs +1 -1
  66. package/dist/MultiLineAltChart.cjs.map +1 -1
  67. package/dist/MultiLineAltChart.js +328 -321
  68. package/dist/MultiLineAltChart.js.map +1 -1
  69. package/dist/MultiLineChart.cjs +1 -1
  70. package/dist/MultiLineChart.cjs.map +1 -1
  71. package/dist/MultiLineChart.js +375 -368
  72. package/dist/MultiLineChart.js.map +1 -1
  73. package/dist/ParetoChart.cjs +1 -1
  74. package/dist/ParetoChart.cjs.map +1 -1
  75. package/dist/ParetoChart.js +385 -378
  76. package/dist/ParetoChart.js.map +1 -1
  77. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
  78. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
  79. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
  80. package/dist/RadarChart.cjs +1 -1
  81. package/dist/RadarChart.cjs.map +1 -1
  82. package/dist/RadarChart.js +35 -34
  83. package/dist/RadarChart.js.map +1 -1
  84. package/dist/SankeyChart.cjs +1 -1
  85. package/dist/SankeyChart.cjs.map +1 -1
  86. package/dist/SankeyChart.js +176 -169
  87. package/dist/SankeyChart.js.map +1 -1
  88. package/dist/ScatterPlot.cjs +1 -1
  89. package/dist/ScatterPlot.cjs.map +1 -1
  90. package/dist/ScatterPlot.js +367 -360
  91. package/dist/ScatterPlot.js.map +1 -1
  92. package/dist/ScrollStory.d.ts +1 -0
  93. package/dist/SimpleLineChart.cjs +1 -1
  94. package/dist/SimpleLineChart.cjs.map +1 -1
  95. package/dist/SimpleLineChart.js +286 -279
  96. package/dist/SimpleLineChart.js.map +1 -1
  97. package/dist/SingleGraphDashboard.cjs +1 -1
  98. package/dist/SingleGraphDashboard.d.ts +1 -0
  99. package/dist/SingleGraphDashboard.js +1 -1
  100. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
  101. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
  102. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
  103. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
  104. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
  105. package/dist/SlopeChart.cjs +1 -1
  106. package/dist/SlopeChart.cjs.map +1 -1
  107. package/dist/SlopeChart.js +243 -236
  108. package/dist/SlopeChart.js.map +1 -1
  109. package/dist/SparkLine.cjs +1 -1
  110. package/dist/SparkLine.js +2 -2
  111. package/dist/StripChart.cjs +1 -1
  112. package/dist/StripChart.cjs.map +1 -1
  113. package/dist/StripChart.js +293 -286
  114. package/dist/StripChart.js.map +1 -1
  115. package/dist/TreeMapGraph.cjs +1 -1
  116. package/dist/TreeMapGraph.cjs.map +1 -1
  117. package/dist/TreeMapGraph.js +222 -215
  118. package/dist/TreeMapGraph.js.map +1 -1
  119. package/dist/Types.d.ts +1 -0
  120. package/dist/{area-BE2wo7fv.js → area-B6r7cv2o.js} +5 -5
  121. package/dist/{area-BE2wo7fv.js.map → area-B6r7cv2o.js.map} +1 -1
  122. package/dist/area-C1gxfNGD.cjs +2 -0
  123. package/dist/{area-D3Qx7k7K.cjs.map → area-C1gxfNGD.cjs.map} +1 -1
  124. package/dist/array-DMyR1sql.cjs +2 -0
  125. package/dist/array-DMyR1sql.cjs.map +1 -0
  126. package/dist/array-USo-Szhp.js +13 -0
  127. package/dist/array-USo-Szhp.js.map +1 -0
  128. package/dist/{ensureCompleteData-DS7gCvVd.js → ensureCompleteData-DH5c52Ub.js} +6 -6
  129. package/dist/{ensureCompleteData-DS7gCvVd.js.map → ensureCompleteData-DH5c52Ub.js.map} +1 -1
  130. package/dist/{ensureCompleteData-Oib-vGb0.cjs → ensureCompleteData-pZ9QO6kB.cjs} +2 -2
  131. package/dist/{ensureCompleteData-Oib-vGb0.cjs.map → ensureCompleteData-pZ9QO6kB.cjs.map} +1 -1
  132. package/dist/index-Blvf-Q3U.cjs +2 -0
  133. package/dist/{index-CF5hnGvG.cjs.map → index-Blvf-Q3U.cjs.map} +1 -1
  134. package/dist/index-D1RrKgK6.js +337 -0
  135. package/dist/index-D1RrKgK6.js.map +1 -0
  136. package/dist/index.cjs +1 -1
  137. package/dist/index.d.ts +7 -0
  138. package/dist/index.js +1 -1
  139. package/dist/line-DFlZsxI1.js +144 -0
  140. package/dist/line-DFlZsxI1.js.map +1 -0
  141. package/dist/line-DaEMhXmx.cjs +2 -0
  142. package/dist/line-DaEMhXmx.cjs.map +1 -0
  143. package/dist/style.css +1 -1
  144. package/package.json +1 -1
  145. package/dist/EmptyState-BZo1BbAn.js.map +0 -1
  146. package/dist/EmptyState-sAEZ_5rU.cjs +0 -2
  147. package/dist/EmptyState-sAEZ_5rU.cjs.map +0 -1
  148. package/dist/GraphEl-YKUlz-37.cjs +0 -2
  149. package/dist/GraphEl-YKUlz-37.cjs.map +0 -1
  150. package/dist/GraphEl-sVZvlyWe.js.map +0 -1
  151. package/dist/area-D3Qx7k7K.cjs +0 -2
  152. package/dist/array-B7TkkRH0.js +0 -89
  153. package/dist/array-B7TkkRH0.js.map +0 -1
  154. package/dist/array-DKbXV8lR.cjs +0 -2
  155. package/dist/array-DKbXV8lR.cjs.map +0 -1
  156. package/dist/index-CF5hnGvG.cjs +0 -2
  157. package/dist/index-DPGq3eIL.js +0 -330
  158. package/dist/index-DPGq3eIL.js.map +0 -1
  159. package/dist/line-CPfhohvF.js +0 -68
  160. package/dist/line-CPfhohvF.js.map +0 -1
  161. package/dist/line-DHV4JwCR.cjs +0 -2
  162. package/dist/line-DHV4JwCR.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"HeatMap.cjs","sources":["../src/Components/Graphs/HeatMap/Graph.tsx","../src/Components/Graphs/HeatMap/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand, scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport { useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n HeatMapDataType,\r\n ScaleDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: HeatMapDataType[];\r\n colorDomain: string[] | number[];\r\n colors: string[];\r\n noDataColor: string;\r\n scaleType: ScaleDataType;\r\n showColumnLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n showRowLabels: boolean;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n selectedColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showColumnLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n colorDomain,\r\n colors,\r\n noDataColor,\r\n scaleType,\r\n showRowLabels,\r\n selectedColor,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [mouseOverData, setMouseOverData] = useState<HeatMapDataType | undefined>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const columns = uniqBy(data, 'column', true) as string[];\r\n const rows = uniqBy(data, 'row', true) as string[];\r\n const y = scaleBand().domain(rows).range([0, graphHeight]);\r\n const barHeight = y.bandwidth();\r\n const x = scaleBand().domain(columns).range([0, graphWidth]);\r\n const barWidth = x.bandwidth();\r\n const colorScale =\r\n scaleType === 'categorical'\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleType === 'threshold'\r\n ? scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors)\r\n : scaleLinear<string, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${0})`}>\r\n {showColumnLabels\r\n ? columns.map((d, i) => (\r\n <XAxesLabels\r\n key={i}\r\n y={0}\r\n x={x(d) as number}\r\n width={barWidth}\r\n height={margin.top - 5}\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='bottom'\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${0},${margin.top})`}>\r\n {showRowLabels\r\n ? rows.map((d, i) => (\r\n <YAxesLabels\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n key={i}\r\n y={y(d) as number}\r\n x={0}\r\n width={margin.left}\r\n height={barHeight}\r\n alignment='right'\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {rows.map((d, i) => (\r\n <g key={i} transform={`translate(0,${y(d)})`}>\r\n {columns.map(el => (\r\n <rect\r\n key={`${d}-${el}`}\r\n x={x(el)}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{ fill: noDataColor }}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n />\r\n ))}\r\n </g>\r\n ))}\r\n {data\r\n .filter(d => !checkIfNullOrUndefined(d.value))\r\n .map((d, i) => {\r\n const color = !checkIfNullOrUndefined(d.value)\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n colorScale(d.value as any)\r\n : noDataColor;\r\n return (\r\n <g\r\n key={`${d.column}-${d.row}`}\r\n transform={`translate(${x(d.column)},${y(d.row)})`}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n opacity={selectedColor ? (selectedColor === color ? 1 : 0.3) : 1}\r\n >\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { fill: color, opacity: 0 },\r\n whileInView: {\r\n fill: color,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.value) ? (\r\n <motion.g\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <foreignObject key={i} y={0} x={0} width={barWidth} height={barHeight}>\r\n <div className='flex flex-col justify-center items-center h-inherit p-1'>\r\n <p\r\n className={cn(\r\n 'text-xs text-center m-0 leading-[1.25] graph-value',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n color: getTextColorBasedOnBgColor(color),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </p>\r\n </div>\r\n </foreignObject>\r\n </motion.g>\r\n ) : null}\r\n </g>\r\n );\r\n })}\r\n {mouseOverData ? (\r\n <rect\r\n x={x(mouseOverData.column)}\r\n y={y(mouseOverData.row)}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{\r\n fill: 'none',\r\n fillOpacity: 0,\r\n strokeWidth: 1.5,\r\n }}\r\n className='stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n />\r\n ) : null}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n HeatMapDataType,\r\n Languages,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { LinearColorLegend } from '@/Components/Elements/LinearColorLegend';\r\nimport { ThresholdColorLegendWithMouseOver } from '@/Components/Elements/ThresholdColorLegendWithMouseOver';\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: HeatMapDataType[];\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 cells */\r\n colors?: string[];\r\n /** Color where data is not available */\r\n noDataColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels in the column */\r\n showColumnLabels?: boolean;\r\n /** Toggle visibility of labels in the row */\r\n showRowLabels?: boolean;\r\n /** Scale for the colors in the cell */\r\n scaleType?: ScaleDataType;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Domain for the colors in the cell. */\r\n colorDomain: number[] | string[];\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\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 HeatMap(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n showColumnLabels = true,\r\n leftMargin = 100,\r\n rightMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n scaleType,\r\n colorDomain,\r\n footNote,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showRowLabels = true,\r\n relativeHeight,\r\n showValues,\r\n graphID,\r\n noDataColor = Colors.gray,\r\n showColorScale = true,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n const scale =\r\n scaleType ||\r\n (typeof colorDomain[0] === 'string'\r\n ? 'categorical'\r\n : colorDomain.length === 2\r\n ? 'linear'\r\n : 'threshold');\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={fillContainer ? undefined : 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 scale === 'categorical' ? (\r\n <ColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain.map(d => `${d}`)}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : scale === 'threshold' ? (\r\n <ThresholdColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain as number[]}\r\n setSelectedColor={setSelectedColor}\r\n naColor={noDataColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : (\r\n <LinearColorLegend\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors || [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n }\r\n colorDomain={colorDomain as number[]}\r\n className={classNames?.colorLegend}\r\n />\r\n )\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n colorDomain={colorDomain}\r\n width={fillContainer || !width ? svgWidth : svgWidth < width ? svgWidth : width}\r\n height={svgHeight}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n noDataColor={noDataColor}\r\n scaleType={scale}\r\n showColumnLabels={showColumnLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n selectedColor={selectedColor}\r\n truncateBy={truncateBy}\r\n showRowLabels={showRowLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n />\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":["Graph","props","$","_c","data","showColumnLabels","leftMargin","rightMargin","truncateBy","width","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","colorDomain","colors","noDataColor","scaleType","showRowLabels","selectedColor","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","animate","precision","svgRef","useRef","t0","amount","once","isInView","useInView","t1","top","bottom","left","right","margin","mouseClickData","setMouseClickData","useState","undefined","mouseOverData","setMouseOverData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","T0","t10","t11","t12","t13","t2","t3","t4","t5","t6","t7","t8","t9","duration","graphObjectValues","xAxis","labels","yAxis","columns","uniqBy","rows","y","scaleBand","domain","range","barHeight","bandwidth","x","barWidth","colorScale","scaleOrdinal","scaleThreshold","scaleLinear","motion","svg","Symbol","for","marginLeft","marginRight","jsx","map","d","i","XAxesLabels","length","substring","d_0","i_0","YAxesLabels","d_1","i_1","el","fill","filter","_temp","d_3","i_2","color","checkIfNullOrUndefined","value","jsxs","column","row","event","clientY","clientX","isEqual","event_0","opacity","transition","initial","whileInView","cn","getTextColorBasedOnBgColor","numberFormattingFunction","fillOpacity","strokeWidth","t14","t15","t16","Tooltip","t17","modal","DetailsModal","t18","Fragment","d_2","HeatMap","graphTitle","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","graphID","showColorScale","graphDownload","dataDownload","fillContainer","language","showNAColor","minHeight","theme","ariaLabel","t19","t20","t21","Colors","gray","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","t22","t23","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","scale","t24","graphContainer","t25","t26","t27","description","title","GraphHeader","_temp2","_temp3","_temp4","_temp5","t28","EmptyState","ColorLegendWithMouseOver","categoricalColors","sequentialColors","neutralColorsx09","_temp6","colorLegend","ThresholdColorLegendWithMouseOver","LinearColorLegend","GraphArea","t29","footnote","source","GraphFooter","t30","GraphContainer","d_4"],"mappings":"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"}
1
+ {"version":3,"file":"HeatMap.cjs","sources":["../src/Components/Graphs/HeatMap/Graph.tsx","../src/Components/Graphs/HeatMap/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleBand, scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport { useRef, useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { motion, useInView } from 'motion/react';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n HeatMapDataType,\r\n ScaleDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { XAxesLabels } from '@/Components/Elements/Axes/XAxesLabels';\r\nimport { YAxesLabels } from '@/Components/Elements/Axes/YAxesLabels';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: HeatMapDataType[];\r\n colorDomain: string[] | number[];\r\n colors: string[];\r\n noDataColor: string;\r\n scaleType: ScaleDataType;\r\n showColumnLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n width: number;\r\n height: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n showRowLabels: boolean;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n selectedColor?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n animate: AnimateDataType;\r\n precision: number;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showColumnLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n colorDomain,\r\n colors,\r\n noDataColor,\r\n scaleType,\r\n showRowLabels,\r\n selectedColor,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate,\r\n precision,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n const [mouseOverData, setMouseOverData] = useState<HeatMapDataType | undefined>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const columns = uniqBy(data, 'column', true) as string[];\r\n const rows = uniqBy(data, 'row', true) as string[];\r\n const y = scaleBand().domain(rows).range([0, graphHeight]);\r\n const barHeight = y.bandwidth();\r\n const x = scaleBand().domain(columns).range([0, graphWidth]);\r\n const barWidth = x.bandwidth();\r\n const colorScale =\r\n scaleType === 'categorical'\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleType === 'threshold'\r\n ? scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors)\r\n : scaleLinear<string, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${0})`}>\r\n {showColumnLabels\r\n ? columns.map((d, i) => (\r\n <XAxesLabels\r\n key={i}\r\n y={0}\r\n x={x(d) as number}\r\n width={barWidth}\r\n height={margin.top - 5}\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n style={styles?.xAxis?.labels}\r\n className={classNames?.xAxis?.labels}\r\n alignment='bottom'\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${0},${margin.top})`}>\r\n {showRowLabels\r\n ? rows.map((d, i) => (\r\n <YAxesLabels\r\n value={\r\n `${d}`.length < truncateBy ? `${d}` : `${`${d}`.substring(0, truncateBy)}...`\r\n }\r\n key={i}\r\n y={y(d) as number}\r\n x={0}\r\n width={margin.left}\r\n height={barHeight}\r\n alignment='right'\r\n style={styles?.yAxis?.labels}\r\n className={classNames?.yAxis?.labels}\r\n animate={{ duration: 0, once: true, amount: 0 }}\r\n isInView={isInView}\r\n />\r\n ))\r\n : null}\r\n </g>\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {rows.map((d, i) => (\r\n <g key={i} transform={`translate(0,${y(d)})`}>\r\n {columns.map(el => (\r\n <rect\r\n key={`${d}-${el}`}\r\n x={x(el)}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{ fill: noDataColor }}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n />\r\n ))}\r\n </g>\r\n ))}\r\n {data\r\n .filter(d => !checkIfNullOrUndefined(d.value))\r\n .map((d, i) => {\r\n const color = !checkIfNullOrUndefined(d.value)\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n colorScale(d.value as any)\r\n : noDataColor;\r\n return (\r\n <g\r\n key={`${d.column}-${d.row}`}\r\n transform={`translate(${x(d.column)},${y(d.row)})`}\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n opacity={selectedColor ? (selectedColor === color ? 1 : 0.3) : 1}\r\n >\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n width={barWidth}\r\n height={barHeight}\r\n className='stroke-1 stroke-primary-white dark:stroke-primary-gray-700'\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: { fill: color, opacity: 0 },\r\n whileInView: {\r\n fill: color,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {showValues && !checkIfNullOrUndefined(d.value) ? (\r\n <motion.g\r\n variants={{\r\n initial: { opacity: 0 },\r\n whileInView: { opacity: 1, transition: { duration: animate.duration } },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <foreignObject key={i} y={0} x={0} width={barWidth} height={barHeight}>\r\n <div className='flex flex-col justify-center items-center h-inherit p-1'>\r\n <p\r\n className={cn(\r\n 'text-xs text-center m-0 leading-[1.25] graph-value',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n color: getTextColorBasedOnBgColor(color),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </p>\r\n </div>\r\n </foreignObject>\r\n </motion.g>\r\n ) : null}\r\n </g>\r\n );\r\n })}\r\n {mouseOverData ? (\r\n <rect\r\n x={x(mouseOverData.column)}\r\n y={y(mouseOverData.row)}\r\n width={barWidth}\r\n height={barHeight}\r\n style={{\r\n fill: 'none',\r\n fillOpacity: 0,\r\n strokeWidth: 1.5,\r\n }}\r\n className='stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n />\r\n ) : null}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n HeatMapDataType,\r\n Languages,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { LinearColorLegend } from '@/Components/Elements/LinearColorLegend';\r\nimport { ThresholdColorLegendWithMouseOver } from '@/Components/Elements/ThresholdColorLegendWithMouseOver';\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: HeatMapDataType[];\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 cells */\r\n colors?: string[];\r\n /** Color where data is not available */\r\n noDataColor?: string;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n truncateBy?: number;\r\n /** Reference values for comparison */\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels in the column */\r\n showColumnLabels?: boolean;\r\n /** Toggle visibility of labels in the row */\r\n showRowLabels?: boolean;\r\n /** Scale for the colors in the cell */\r\n scaleType?: ScaleDataType;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Domain for the colors in the cell. */\r\n colorDomain: number[] | string[];\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\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 HeatMap(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n showColumnLabels = true,\r\n leftMargin = 100,\r\n rightMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n scaleType,\r\n colorDomain,\r\n footNote,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n showRowLabels = true,\r\n relativeHeight,\r\n showValues,\r\n graphID,\r\n noDataColor = Colors.gray,\r\n showColorScale = true,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n const scale =\r\n scaleType ||\r\n (typeof colorDomain[0] === 'string'\r\n ? 'categorical'\r\n : colorDomain.length === 2\r\n ? 'linear'\r\n : 'threshold');\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={fillContainer ? undefined : 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 scale === 'categorical' ? (\r\n <ColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain.map(d => `${d}`)}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : scale === 'threshold' ? (\r\n <ThresholdColorLegendWithMouseOver\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n colorDomain={colorDomain as number[]}\r\n setSelectedColor={setSelectedColor}\r\n naColor={noDataColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : (\r\n <LinearColorLegend\r\n width={fillContainer ? undefined : width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n colors || [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n }\r\n colorDomain={colorDomain as number[]}\r\n className={classNames?.colorLegend}\r\n />\r\n )\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n colorDomain={colorDomain}\r\n width={fillContainer || !width ? svgWidth : svgWidth < width ? svgWidth : width}\r\n height={svgHeight}\r\n colors={\r\n colors ||\r\n (typeof colorDomain[0] === 'string'\r\n ? Colors[theme].categoricalColors.colors\r\n : colorDomain.length === 2\r\n ? [\r\n Colors[theme].sequentialColors.neutralColorsx09[0],\r\n Colors[theme].sequentialColors.neutralColorsx09[8],\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(colorDomain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n noDataColor={noDataColor}\r\n scaleType={scale}\r\n showColumnLabels={showColumnLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n selectedColor={selectedColor}\r\n truncateBy={truncateBy}\r\n showRowLabels={showRowLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","showColumnLabels","leftMargin","rightMargin","truncateBy","width","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","colorDomain","colors","noDataColor","scaleType","showRowLabels","selectedColor","onSeriesMouseClick","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","animate","precision","svgRef","useRef","t0","amount","once","isInView","useInView","t1","top","bottom","left","right","margin","mouseClickData","setMouseClickData","useState","undefined","mouseOverData","setMouseOverData","eventX","setEventX","eventY","setEventY","graphWidth","graphHeight","T0","t10","t11","t12","t13","t2","t3","t4","t5","t6","t7","t8","t9","duration","graphObjectValues","xAxis","labels","yAxis","columns","uniqBy","rows","y","scaleBand","domain","range","barHeight","bandwidth","x","barWidth","colorScale","scaleOrdinal","scaleThreshold","scaleLinear","motion","svg","Symbol","for","marginLeft","marginRight","jsx","map","d","i","XAxesLabels","length","substring","d_0","i_0","YAxesLabels","d_1","i_1","el","fill","filter","_temp","d_3","i_2","color","checkIfNullOrUndefined","value","jsxs","column","row","event","clientY","clientX","isEqual","event_0","opacity","transition","initial","whileInView","cn","getTextColorBasedOnBgColor","numberFormattingFunction","fillOpacity","strokeWidth","t14","t15","t16","Tooltip","t17","modal","DetailsModal","t18","Fragment","d_2","HeatMap","graphTitle","sources","graphDescription","footNote","colorLegendTitle","padding","backgroundColor","relativeHeight","graphID","showColorScale","graphDownload","dataDownload","fillContainer","language","showNAColor","minHeight","theme","ariaLabel","t19","t20","t21","Colors","gray","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","t22","t23","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","useEffect","scale","t24","graphContainer","t25","t26","t27","description","title","GraphHeader","_temp2","_temp3","_temp4","_temp5","t28","colorLegend","ColorLegendWithMouseOver","categoricalColors","sequentialColors","neutralColorsx09","_temp6","ThresholdColorLegendWithMouseOver","LinearColorLegend","t29","EmptyState","t30","t31","GraphArea","t32","footnote","source","GraphFooter","t33","GraphContainer","d_4"],"mappings":"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"}