@undp/data-viz 2.3.15 → 2.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +9 -6
- package/dist/BiVariateChoroplethMap.js +1 -1
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +9 -6
- package/dist/ChoroplethMap.js +1 -1
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/Data/data.json +2627 -0
- package/dist/Data/testMap.json +1 -361
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +7 -5
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/{GraphEl-BgNA-xFf.js → GraphEl-CnJf8b50.js} +2 -1
- package/dist/GraphEl-CnJf8b50.js.map +1 -0
- package/dist/{GraphEl-Bl1Hnqnd.cjs → GraphEl-D_w0Qak4.cjs} +2 -2
- package/dist/GraphEl-D_w0Qak4.cjs.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.d.ts +8 -5
- package/dist/GriddedGraphs.js +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +8 -5
- package/dist/HybridMap.cjs.map +1 -1
- package/dist/HybridMap.d.ts +7 -5
- package/dist/HybridMap.js.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +8 -5
- package/dist/MultiGraphDashboardFromConfig.d.ts +8 -5
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.d.ts +2 -0
- package/dist/MultiLineAltChart.js +387 -379
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +8 -5
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +8 -5
- package/dist/PerformanceIntensiveScrollStory.d.ts +8 -5
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +2 -0
- package/dist/ScatterPlot.js +396 -400
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.d.ts +8 -5
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.d.ts +8 -5
- package/dist/SingleGraphDashboard.js +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +8 -5
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +8 -5
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +8 -5
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +8 -5
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +8 -5
- package/dist/Types.d.ts +8 -5
- package/dist/index.d.ts +18 -27
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/GraphEl-BgNA-xFf.js.map +0 -1
- package/dist/GraphEl-Bl1Hnqnd.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLineAltChart.js","sources":["../node_modules/d3-array/src/permute.js","../node_modules/d3-array/src/sort.js","../src/Components/Graphs/LineCharts/MultiLineAltChart/Graph.tsx","../src/Components/Graphs/LineCharts/MultiLineAltChart/index.tsx"],"sourcesContent":["export default function permute(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveLinear,\r\n curveMonotoneX,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleLinear, scaleTime } from 'd3-scale';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { bisectCenter } from 'd3-array';\r\nimport { pointer, select } from 'd3-selection';\r\nimport { ascending, sort } from 'd3-array';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Delaunay } from 'd3-delaunay';\r\nimport { motion, useInView } from 'motion/react';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n AnimateDataType,\r\n AnnotationSettingsDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomHighlightAreaSettingsDataType,\r\n CustomLayerDataType,\r\n HighlightAreaSettingsDataType,\r\n MultiLineAltChartDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getLineEndPoint } from '@/Utils/getLineEndPoint';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { Annotation } from '@/Components/Elements/Annotations';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { CustomArea } from '@/Components/Elements/HighlightArea/customArea';\r\nimport { HighlightArea } from '@/Components/Elements/HighlightArea';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: MultiLineAltChartDataType[];\r\n lineColors: string[];\r\n width: number;\r\n height: number;\r\n dateFormat: string;\r\n noOfXTicks: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n leftMargin: number;\r\n rightMargin: number;\r\n suffix: string;\r\n prefix: string;\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 highlightAreaSettings: HighlightAreaSettingsDataType[];\r\n refValues: ReferenceDataType[];\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedLines: (string | number)[];\r\n animate: AnimateDataType;\r\n rtl: boolean;\r\n strokeWidth: number;\r\n showLabels: boolean;\r\n showDots: boolean;\r\n annotations: AnnotationSettingsDataType[];\r\n customHighlightAreaSettings: CustomHighlightAreaSettingsDataType[];\r\n yAxisTitle?: string;\r\n noOfYTicks: number;\r\n minDate?: string | number;\r\n maxDate?: string | number;\r\n colorDomain: (string | number)[];\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n selectedColor?: string;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n showHighlightedLinesLabels: boolean;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y: number;\r\n date: Date;\r\n label: number | string;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n lineColors,\r\n dateFormat,\r\n noOfXTicks,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n suffix,\r\n prefix,\r\n leftMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n highlightAreaSettings,\r\n minValue,\r\n maxValue,\r\n highlightedLines,\r\n animate,\r\n rtl,\r\n strokeWidth,\r\n showDots,\r\n annotations,\r\n customHighlightAreaSettings,\r\n yAxisTitle,\r\n noOfYTicks,\r\n minDate,\r\n maxDate,\r\n curveType,\r\n styles,\r\n colorDomain,\r\n selectedColor,\r\n classNames,\r\n showLabels,\r\n dimmedOpacity,\r\n precision,\r\n naLabel,\r\n customLayers,\r\n showHighlightedLinesLabels,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const [hasAnimatedOnce, setHasAnimatedOnce] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isInView && !hasAnimatedOnce) {\r\n const timeout = setTimeout(\r\n () => {\r\n setHasAnimatedOnce(true);\r\n },\r\n (animate.duration + 0.5) * 1000,\r\n );\r\n return () => clearTimeout(timeout);\r\n }\r\n }, [isInView, hasAnimatedOnce, animate.duration]);\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n const dataFormatted = orderBy(\r\n data.map(d => ({\r\n ...d,\r\n date: parse(`${d.date}`, dateFormat, new Date()),\r\n })),\r\n ['date'],\r\n ['asc'],\r\n ).filter(d => !checkIfNullOrUndefined(d.y));\r\n const labels = uniqBy(dataFormatted, 'label', true) as (string | number)[];\r\n const dates = sort(\r\n uniqBy(data, 'date', true).map(d => parse(`${d}`, dateFormat, new Date())),\r\n (a, b) => ascending(a, b),\r\n );\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: yAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n const MouseoverRectRef = useRef(null);\r\n const lineArray = labels.map(d =>\r\n orderBy(\r\n dataFormatted.filter(el => el.label == d),\r\n ['date'],\r\n ['asc'],\r\n ),\r\n );\r\n const highlightAreaSettingsFormatted = highlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: [\r\n d.coordinates[0] === null ? null : parse(`${d.coordinates[0]}`, dateFormat, new Date()),\r\n d.coordinates[1] === null ? null : parse(`${d.coordinates[1]}`, dateFormat, new Date()),\r\n ],\r\n }));\r\n const customHighlightAreaSettingsFormatted = customHighlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: d.coordinates.map((el, j) =>\r\n j % 2 === 0 ? parse(`${el}`, dateFormat, new Date()) : (el as number),\r\n ),\r\n }));\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const minYear = minDate ? parse(`${minDate}`, dateFormat, new Date()) : dates[0];\r\n const maxYear = maxDate ? parse(`${maxDate}`, dateFormat, new Date()) : dates[dates.length - 1];\r\n const minParam: number = checkIfNullOrUndefined(minValue)\r\n ? Math.min(...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]))\r\n ? (Math.min(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number) > 0\r\n ? 0\r\n : (Math.min(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number)\r\n : 0\r\n : (minValue as number);\r\n const maxParam: number = (Math.max(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number)\r\n ? (Math.max(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number)\r\n : 0;\r\n\r\n const x = scaleTime().domain([minYear, maxYear]).range([0, graphWidth]);\r\n const y = scaleLinear()\r\n .domain([\r\n checkIfNullOrUndefined(minValue) ? minParam : (minValue as number),\r\n checkIfNullOrUndefined(maxValue) ? (maxParam > 0 ? maxParam : 0) : (maxValue as number),\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const voronoiDiagram = Delaunay.from(\r\n dataFormatted.filter(d => !checkIfNullOrUndefined(d.date) && !checkIfNullOrUndefined(d.y)),\r\n d => x(d.date),\r\n d => y(d.y as number),\r\n ).voronoi([0, 0, graphWidth < 0 ? 0 : graphWidth, graphHeight < 0 ? 0 : graphHeight]);\r\n const lineShape = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y))\r\n .curve(curve);\r\n const yTicks = y.ticks(noOfYTicks);\r\n const xTicks = x.ticks(noOfXTicks);\r\n useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mousemove = (event: any) => {\r\n const selectedData =\r\n dataFormatted[\r\n bisectCenter(\r\n dataFormatted.map(d => d.date),\r\n x.invert(pointer(event)[0]),\r\n 0,\r\n )\r\n ];\r\n setMouseOverData(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n };\r\n const mouseout = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n };\r\n select(MouseoverRectRef.current).on('mousemove', mousemove).on('mouseout', mouseout);\r\n onSeriesMouseOver?.(undefined);\r\n }, [x, dataFormatted, onSeriesMouseOver]);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <HighlightArea\r\n areaSettings={highlightAreaSettingsFormatted}\r\n width={graphWidth}\r\n height={graphHeight}\r\n scale={x}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <CustomArea\r\n areaSettings={customHighlightAreaSettingsFormatted}\r\n scaleX={x}\r\n scaleY={y}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <g>\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n <Axis\r\n y1={y(minParam < 0 ? 0 : minParam)}\r\n y2={y(minParam < 0 ? 0 : minParam)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={numberFormattingFunction(\r\n minParam < 0 ? 0 : minParam,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(minParam < 0 ? 0 : minParam),\r\n dx: 0,\r\n dy: maxParam < 0 ? '1em' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={yAxisTitle}\r\n rotate90\r\n />\r\n </g>\r\n <g>\r\n <XTicksAndGridLines\r\n values={xTicks.map(d => format(d, dateFormat))}\r\n x={xTicks.map(d => x(d))}\r\n y1={0}\r\n y2={graphHeight}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: cn('opacity-0', classNames?.xAxis?.gridLines),\r\n labels: cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 xs:max-[360px]:hidden text-[9px] md:text-[10px] lg:text-xs',\r\n classNames?.xAxis?.labels,\r\n ),\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='primary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n </g>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <motion.g>\r\n {lineArray.map(d => (\r\n <motion.g\r\n key={d[0].label}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: mouseOverData\r\n ? d[0].label === mouseOverData.label\r\n ? 1\r\n : dimmedOpacity\r\n : selectedColor\r\n ? d[0].color\r\n ? lineColors[colorDomain.indexOf(d[0].color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(d[0].label) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : 1,\r\n },\r\n whileInView: {\r\n opacity: mouseOverData\r\n ? d[0].label === mouseOverData.label\r\n ? 1\r\n : dimmedOpacity\r\n : selectedColor\r\n ? d[0].color\r\n ? lineColors[colorDomain.indexOf(d[0].color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(d[0].label) !== -1\r\n ? 1\r\n : dimmedOpacity\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 >\r\n <motion.path\r\n d={\r\n lineShape(\r\n d.filter((el): el is FormattedDataType => !checkIfNullOrUndefined(el.y)),\r\n ) || ''\r\n }\r\n style={{\r\n fill: 'none',\r\n strokeWidth: mouseOverData\r\n ? d[0].label === mouseOverData.label\r\n ? strokeWidth + Math.max(2, 0.5 * strokeWidth)\r\n : strokeWidth\r\n : highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(d[0].label) !== -1\r\n ? strokeWidth + Math.max(2, 0.5 * strokeWidth)\r\n : strokeWidth\r\n : strokeWidth,\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d:\r\n lineShape(\r\n d.filter((el): el is FormattedDataType => !checkIfNullOrUndefined(el.y)),\r\n ) || '',\r\n opacity: 1,\r\n stroke:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d:\r\n lineShape(\r\n d.filter((el): el is FormattedDataType => !checkIfNullOrUndefined(el.y)),\r\n ) || '',\r\n opacity: 1,\r\n stroke:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {d.map((el, j) => (\r\n <motion.g key={j}>\r\n {!checkIfNullOrUndefined(el.y) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={graphWidth / d.length < 5 ? 0 : graphWidth / d.length < 20 ? 2 : 4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n cx: x(el.date),\r\n cy: y(el.y as number),\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n cx: x(el.date),\r\n cy: y(el.y as number),\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n </>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {((highlightedLines.indexOf(d[0].label) !== -1 && showHighlightedLinesLabels) ||\r\n mouseOverData?.label === d[0].label) &&\r\n showLabels ? (\r\n <motion.text\r\n className='text-sm font-bold'\r\n dx={5}\r\n dy={4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n x: x(d[d.length - 1].date),\r\n y: y(d[d.length - 1].y as number),\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n x: x(d[d.length - 1].date),\r\n y: y(d[d.length - 1].y as number),\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {d[0].label}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {mouseOverData ? (\r\n <text\r\n y={y(mouseOverData.y) - 8}\r\n x={x(mouseOverData.date)}\r\n className={cn('graph-value text-sm font-bold', classNames?.graphObjectValues)}\r\n style={{\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !mouseOverData.color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(mouseOverData.color)],\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(mouseOverData.y, naLabel, precision, prefix, suffix)}\r\n </text>\r\n ) : null}\r\n </motion.g>\r\n {dataFormatted\r\n .filter(d => !checkIfNullOrUndefined(d.y))\r\n .map((d, i) => {\r\n return (\r\n <g key={i}>\r\n <path\r\n d={voronoiDiagram.renderCell(\r\n dataFormatted.findIndex(el => el.label === d.label && el.date === d.date),\r\n )}\r\n opacity={0}\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 onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n />\r\n </g>\r\n );\r\n })}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n <g>\r\n {annotations.map((d, i) => {\r\n const endPoints = getLineEndPoint(\r\n {\r\n x: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n },\r\n {\r\n x: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n y: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n },\r\n checkIfNullOrUndefined(d.connectorRadius) ? 3.5 : (d.connectorRadius as number),\r\n );\r\n const connectorSettings = d.showConnector\r\n ? {\r\n y1: endPoints.y,\r\n x1: endPoints.x,\r\n y2: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0)\r\n : 0 + (d.yOffset || 0),\r\n x2: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n cy: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n cx: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n circleRadius: checkIfNullOrUndefined(d.connectorRadius)\r\n ? 3.5\r\n : (d.connectorRadius as number),\r\n strokeWidth: d.showConnector === true ? 2 : Math.min(d.showConnector || 0, 1),\r\n }\r\n : undefined;\r\n const labelSettings = {\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n x: rtl\r\n ? 0\r\n : d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n width: rtl\r\n ? d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)\r\n : graphWidth +\r\n margin.right -\r\n (d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)),\r\n maxWidth: d.maxWidth,\r\n fontWeight: d.fontWeight,\r\n align: d.align,\r\n };\r\n return (\r\n <Annotation\r\n key={i}\r\n color={d.color}\r\n connectorsSettings={connectorSettings}\r\n labelSettings={labelSettings}\r\n text={d.text}\r\n classNames={d.classNames}\r\n styles={d.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n );\r\n })}\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n AnnotationSettingsDataType,\r\n CustomHighlightAreaSettingsDataType,\r\n Languages,\r\n MultiLineAltChartDataType,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n HighlightAreaSettingsDataType,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { 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 { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\nimport { getNoOfTicks } from '@/Utils/getNoOfTicks';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: MultiLineAltChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for lines */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: (string | number)[];\r\n /** Toggle the visibility of labels of the lines when highlighted or mouse hovered */\r\n showLabels?: boolean;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Maximum value of the date for the chart */\r\n maxDate?: string | number;\r\n /** Minimum value of the date for the chart */\r\n minDate?: string | number;\r\n /** No. of ticks on the x-axis */\r\n noOfXTicks?: number;\r\n /** No. of ticks on the y-axis */\r\n noOfYTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Stroke width of the line */\r\n strokeWidth?: number;\r\n /** Toggle the initial animation of the line. If the type is number then it uses the number as the time in seconds for animation. */\r\n animate?: boolean | AnimateDataType;\r\n /** Format of the date in the data object. Available formats can be found [here](https://date-fns.org/docs/format) */\r\n dateFormat?: string;\r\n /** Title for the Y-axis */\r\n yAxisTitle?: string;\r\n /** 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 /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedLines?: (string | number)[];\r\n /** Defines if the labels should be shown for highlighted lines. */\r\n showHighlightedLinesLabels?: boolean;\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Annotations on the chart */\r\n annotations?: AnnotationSettingsDataType[];\r\n /** Highlighted area(square) on the chart */\r\n highlightAreaSettings?: HighlightAreaSettingsDataType[];\r\n /** Highlighted area(custom shape) on the chart */\r\n customHighlightAreaSettings?: CustomHighlightAreaSettingsDataType[];\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function MultiLineAltChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n showNAColor = true,\r\n colors,\r\n colorDomain,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n noOfXTicks = 10,\r\n dateFormat = 'yyyy',\r\n padding,\r\n backgroundColor = false,\r\n leftMargin = 30,\r\n rightMargin = 50,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n showColorScale = true,\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n showLabels = true,\r\n showHighlightedLinesLabels = false,\r\n refValues = [],\r\n highlightAreaSettings = [],\r\n graphID,\r\n minValue,\r\n maxValue,\r\n highlightedLines = [],\r\n graphDownload = false,\r\n dataDownload = false,\r\n animate = false,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n strokeWidth = 2,\r\n showDots = true,\r\n annotations = [],\r\n customHighlightAreaSettings = [],\r\n theme = 'light',\r\n ariaLabel,\r\n yAxisTitle,\r\n noOfYTicks = 5,\r\n minDate,\r\n maxDate,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n 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 useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as string[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n lineColors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n width={svgWidth}\r\n height={svgHeight}\r\n dateFormat={dateFormat}\r\n noOfXTicks={noOfXTicks ?? getNoOfTicks(svgWidth)}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n suffix={suffix}\r\n prefix={prefix}\r\n highlightAreaSettings={highlightAreaSettings}\r\n refValues={refValues}\r\n minValue={minValue}\r\n maxValue={maxValue}\r\n highlightedLines={highlightedLines}\r\n showHighlightedLinesLabels={showHighlightedLinesLabels}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n rtl={language === 'he' || language === 'ar'}\r\n strokeWidth={strokeWidth}\r\n showDots={showDots}\r\n annotations={annotations}\r\n customHighlightAreaSettings={customHighlightAreaSettings}\r\n yAxisTitle={yAxisTitle}\r\n noOfYTicks={noOfYTicks}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n curveType={curveType}\r\n styles={styles}\r\n classNames={classNames}\r\n selectedColor={selectedColor}\r\n showLabels={showLabels}\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["permute","source","keys","key","sort","values","F","f","index","d","i","j","c","ascendingDefined","compareDefined","compare","ascending","a","b","x","Graph","props","$","_c","data","width","height","lineColors","dateFormat","noOfXTicks","rightMargin","topMargin","bottomMargin","suffix","prefix","leftMargin","tooltip","onSeriesMouseOver","refValues","highlightAreaSettings","minValue","maxValue","highlightedLines","animate","rtl","strokeWidth","showDots","annotations","customHighlightAreaSettings","yAxisTitle","noOfYTicks","minDate","maxDate","curveType","styles","colorDomain","selectedColor","classNames","showLabels","dimmedOpacity","precision","naLabel","customLayers","showHighlightedLinesLabels","svgRef","useRef","t0","amount","once","isInView","useInView","hasAnimatedOnce","setHasAnimatedOnce","useState","t1","t2","duration","timeout","setTimeout","clearTimeout","useEffect","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","t3","date","parse","Date","dataFormatted","orderBy","map","filter","_temp","labels","uniqBy","t4","d_1","dates","_temp2","mouseOverData","setMouseOverData","undefined","eventX","setEventX","eventY","setEventY","t5","t6","top","bottom","left","right","margin","MouseoverRectRef","lineArray","d_2","el","label","t7","t8","d_3","coordinates","highlightAreaSettingsFormatted","t9","d_4","el_0","customHighlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam","checkIfNullOrUndefined","Math","min","_temp3","_temp4","_temp5","_temp6","_temp7","_temp8","maxParam","max","_temp9","_temp0","_temp1","_temp10","scaleTime","domain","range","t10","y","scaleLinear","nice","voronoiDiagram","Delaunay","from","_temp11","d_16","d_17","voronoi","lineShape","line","d_18","d_19","yTicks","ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp12","invert","pointer","clientY","clientX","mouseout","select","current","on","t11","jsx","HighlightArea","t12","yAxis","gridLines","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","numberFormattingFunction","t24","t25","t26","t27","dx","dy","t28","xAxis","axis","t29","t30","t31","t32","t33","t34","Axis","t35","t36","t37","title","t38","t39","AxisTitle","t40","d_24","format","t41","t42","d_25","t43","t44","t45","t46","t47","cn","t48","t49","t50","t51","_temp15","_temp16","t52","_temp27","d_30","renderCell","findIndex","el_12","event_0","event_1","t53","Fragment","el_13","i_0","RefLineY","text","color","value","t54","t55","d_31","i_1","endPoints","getLineEndPoint","xCoordinate","xOffset","yCoordinate","yOffset","connectorRadius","connectorSettings","showConnector","y1","x1","y2","x2","cy","cx","circleRadius","labelSettings","maxWidth","fontWeight","align","Annotation","t56","_temp28","_temp29","t57","Tooltip","jsxs","motion","CustomArea","YTicksAndGridLines","_temp13","_temp14","d_23","XTicksAndGridLines","d_28","opacity","transition","initial","indexOf","whileInView","_temp17","fill","pathLength","_temp18","stroke","_temp19","Colors","gray","_temp20","_temp21","el_6","j_0","_temp22","_temp23","delay","_temp24","_temp25","graphObjectValues","_temp26","textAnchor","d_33","layer","d_32","position","d_29","el_11","el_10","el_9","el_8","el_7","el_5","el_4","el_3","el_2","el_1","d_27","d_26","d_22","d_21","d_20","d_15","d_12","d_11","d_14","d_13","d_6","d_5","d_8","d_7","d_10","d_9","d_0","MultiLineAltChart","graphTitle","showNAColor","colors","sources","graphDescription","footNote","padding","backgroundColor","showColorScale","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","colorLegend","ColorLegendWithMouseOver","categoricalColors","EmptyState","primaryColors","getNoOfTicks","GraphArea","footnote","GraphFooter","GraphContainer"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"MultiLineAltChart.js","sources":["../node_modules/d3-array/src/permute.js","../node_modules/d3-array/src/sort.js","../src/Components/Graphs/LineCharts/MultiLineAltChart/Graph.tsx","../src/Components/Graphs/LineCharts/MultiLineAltChart/index.tsx"],"sourcesContent":["export default function permute(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveLinear,\r\n curveMonotoneX,\r\n curveStep,\r\n curveStepAfter,\r\n curveStepBefore,\r\n} from 'd3-shape';\r\nimport { scaleLinear, scaleTime } from 'd3-scale';\r\nimport { format } from 'date-fns/format';\r\nimport { parse } from 'date-fns/parse';\r\nimport { bisectCenter } from 'd3-array';\r\nimport { pointer, select } from 'd3-selection';\r\nimport { ascending, sort } from 'd3-array';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Delaunay } from 'd3-delaunay';\r\nimport { motion, useInView } from 'motion/react';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n AnimateDataType,\r\n AnnotationSettingsDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomHighlightAreaSettingsDataType,\r\n CustomLayerDataType,\r\n HighlightAreaSettingsDataType,\r\n MultiLineAltChartDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getLineEndPoint } from '@/Utils/getLineEndPoint';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { Annotation } from '@/Components/Elements/Annotations';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\nimport { CustomArea } from '@/Components/Elements/HighlightArea/customArea';\r\nimport { HighlightArea } from '@/Components/Elements/HighlightArea';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: MultiLineAltChartDataType[];\r\n lineColors: string[];\r\n width: number;\r\n height: number;\r\n dateFormat: string;\r\n noOfXTicks: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n leftMargin: number;\r\n rightMargin: number;\r\n suffix: string;\r\n prefix: string;\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 highlightAreaSettings: HighlightAreaSettingsDataType[];\r\n refValues: ReferenceDataType[];\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedLines: (string | number)[];\r\n animate: AnimateDataType;\r\n rtl: boolean;\r\n strokeWidth: number;\r\n showLabels: boolean;\r\n showDots: boolean;\r\n annotations: AnnotationSettingsDataType[];\r\n customHighlightAreaSettings: CustomHighlightAreaSettingsDataType[];\r\n yAxisTitle?: string;\r\n noOfYTicks: number;\r\n minDate?: string | number;\r\n maxDate?: string | number;\r\n colorDomain: (string | number)[];\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n selectedColor?: string;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n naLabel: string;\r\n showHighlightedLinesLabels: boolean;\r\n showDateOnHover: boolean;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y: number;\r\n date: Date;\r\n label: number | string;\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n width,\r\n height,\r\n lineColors,\r\n dateFormat,\r\n noOfXTicks,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n suffix,\r\n prefix,\r\n leftMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n highlightAreaSettings,\r\n minValue,\r\n maxValue,\r\n highlightedLines,\r\n animate,\r\n rtl,\r\n strokeWidth,\r\n showDots,\r\n annotations,\r\n customHighlightAreaSettings,\r\n yAxisTitle,\r\n noOfYTicks,\r\n minDate,\r\n maxDate,\r\n curveType,\r\n styles,\r\n colorDomain,\r\n selectedColor,\r\n classNames,\r\n showLabels,\r\n dimmedOpacity,\r\n precision,\r\n naLabel,\r\n customLayers,\r\n showHighlightedLinesLabels,\r\n showDateOnHover,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n const [hasAnimatedOnce, setHasAnimatedOnce] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isInView && !hasAnimatedOnce) {\r\n const timeout = setTimeout(\r\n () => {\r\n setHasAnimatedOnce(true);\r\n },\r\n (animate.duration + 0.5) * 1000,\r\n );\r\n return () => clearTimeout(timeout);\r\n }\r\n }, [isInView, hasAnimatedOnce, animate.duration]);\r\n const curve =\r\n curveType === 'linear'\r\n ? curveLinear\r\n : curveType === 'step'\r\n ? curveStep\r\n : curveType === 'stepAfter'\r\n ? curveStepAfter\r\n : curveType === 'stepBefore'\r\n ? curveStepBefore\r\n : curveMonotoneX;\r\n const dataFormatted = orderBy(\r\n data.map(d => ({\r\n ...d,\r\n date: parse(`${d.date}`, dateFormat, new Date()),\r\n })),\r\n ['date'],\r\n ['asc'],\r\n ).filter(d => !checkIfNullOrUndefined(d.y));\r\n const labels = uniqBy(dataFormatted, 'label', true) as (string | number)[];\r\n const dates = sort(\r\n uniqBy(data, 'date', true).map(d => parse(`${d}`, dateFormat, new Date())),\r\n (a, b) => ascending(a, b),\r\n );\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: yAxisTitle ? leftMargin + 30 : leftMargin,\r\n right: rightMargin,\r\n };\r\n const MouseoverRectRef = useRef(null);\r\n const lineArray = labels.map(d =>\r\n orderBy(\r\n dataFormatted.filter(el => el.label == d),\r\n ['date'],\r\n ['asc'],\r\n ),\r\n );\r\n const highlightAreaSettingsFormatted = highlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: [\r\n d.coordinates[0] === null ? null : parse(`${d.coordinates[0]}`, dateFormat, new Date()),\r\n d.coordinates[1] === null ? null : parse(`${d.coordinates[1]}`, dateFormat, new Date()),\r\n ],\r\n }));\r\n const customHighlightAreaSettingsFormatted = customHighlightAreaSettings.map(d => ({\r\n ...d,\r\n coordinates: d.coordinates.map((el, j) =>\r\n j % 2 === 0 ? parse(`${el}`, dateFormat, new Date()) : (el as number),\r\n ),\r\n }));\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const minYear = minDate ? parse(`${minDate}`, dateFormat, new Date()) : dates[0];\r\n const maxYear = maxDate ? parse(`${maxDate}`, dateFormat, new Date()) : dates[dates.length - 1];\r\n const minParam: number = checkIfNullOrUndefined(minValue)\r\n ? Math.min(...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]))\r\n ? (Math.min(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number) > 0\r\n ? 0\r\n : (Math.min(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number)\r\n : 0\r\n : (minValue as number);\r\n const maxParam: number = (Math.max(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number)\r\n ? (Math.max(\r\n ...(dataFormatted.map(d => d.y).filter(d => !checkIfNullOrUndefined(d)) as number[]),\r\n ) as number)\r\n : 0;\r\n\r\n const x = scaleTime().domain([minYear, maxYear]).range([0, graphWidth]);\r\n const y = scaleLinear()\r\n .domain([\r\n checkIfNullOrUndefined(minValue) ? minParam : (minValue as number),\r\n checkIfNullOrUndefined(maxValue) ? (maxParam > 0 ? maxParam : 0) : (maxValue as number),\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const voronoiDiagram = Delaunay.from(\r\n dataFormatted.filter(d => !checkIfNullOrUndefined(d.date) && !checkIfNullOrUndefined(d.y)),\r\n d => x(d.date),\r\n d => y(d.y as number),\r\n ).voronoi([0, 0, graphWidth < 0 ? 0 : graphWidth, graphHeight < 0 ? 0 : graphHeight]);\r\n const lineShape = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y))\r\n .curve(curve);\r\n const yTicks = y.ticks(noOfYTicks);\r\n const xTicks = x.ticks(noOfXTicks);\r\n useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mousemove = (event: any) => {\r\n const selectedData =\r\n dataFormatted[\r\n bisectCenter(\r\n dataFormatted.map(d => d.date),\r\n x.invert(pointer(event)[0]),\r\n 0,\r\n )\r\n ];\r\n setMouseOverData(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n };\r\n const mouseout = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n };\r\n select(MouseoverRectRef.current).on('mousemove', mousemove).on('mouseout', mouseout);\r\n onSeriesMouseOver?.(undefined);\r\n }, [x, dataFormatted, onSeriesMouseOver]);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <HighlightArea\r\n areaSettings={highlightAreaSettingsFormatted}\r\n width={graphWidth}\r\n height={graphHeight}\r\n scale={x}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <CustomArea\r\n areaSettings={customHighlightAreaSettingsFormatted}\r\n scaleX={x}\r\n scaleY={y}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <g>\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n <Axis\r\n y1={y(minParam < 0 ? 0 : minParam)}\r\n y2={y(minParam < 0 ? 0 : minParam)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n label={numberFormattingFunction(\r\n minParam < 0 ? 0 : minParam,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n labelPos={{\r\n x: 0 - leftMargin,\r\n y: y(minParam < 0 ? 0 : minParam),\r\n dx: 0,\r\n dy: maxParam < 0 ? '1em' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <AxisTitle\r\n x={0 - leftMargin - 15}\r\n y={graphHeight / 2}\r\n style={styles?.yAxis?.title}\r\n className={classNames?.yAxis?.title}\r\n text={yAxisTitle}\r\n rotate90\r\n />\r\n </g>\r\n <g>\r\n <XTicksAndGridLines\r\n values={xTicks.map(d => format(d, dateFormat))}\r\n x={xTicks.map(d => x(d))}\r\n y1={0}\r\n y2={graphHeight}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: cn('opacity-0', classNames?.xAxis?.gridLines),\r\n labels: cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 xs:max-[360px]:hidden text-[9px] md:text-[10px] lg:text-xs',\r\n classNames?.xAxis?.labels,\r\n ),\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='primary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n </g>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <motion.g>\r\n {lineArray.map(d => (\r\n <motion.g\r\n key={d[0].label}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: mouseOverData\r\n ? d[0].label === mouseOverData.label\r\n ? 1\r\n : dimmedOpacity\r\n : selectedColor\r\n ? d[0].color\r\n ? lineColors[colorDomain.indexOf(d[0].color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(d[0].label) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : 1,\r\n },\r\n whileInView: {\r\n opacity: mouseOverData\r\n ? d[0].label === mouseOverData.label\r\n ? 1\r\n : dimmedOpacity\r\n : selectedColor\r\n ? d[0].color\r\n ? lineColors[colorDomain.indexOf(d[0].color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(d[0].label) !== -1\r\n ? 1\r\n : dimmedOpacity\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 >\r\n <motion.path\r\n d={\r\n lineShape(\r\n d.filter((el): el is FormattedDataType => !checkIfNullOrUndefined(el.y)),\r\n ) || ''\r\n }\r\n style={{\r\n fill: 'none',\r\n strokeWidth: mouseOverData\r\n ? d[0].label === mouseOverData.label\r\n ? strokeWidth + Math.max(2, 0.5 * strokeWidth)\r\n : strokeWidth\r\n : highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(d[0].label) !== -1\r\n ? strokeWidth + Math.max(2, 0.5 * strokeWidth)\r\n : strokeWidth\r\n : strokeWidth,\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d:\r\n lineShape(\r\n d.filter((el): el is FormattedDataType => !checkIfNullOrUndefined(el.y)),\r\n ) || '',\r\n opacity: 1,\r\n stroke:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d:\r\n lineShape(\r\n d.filter((el): el is FormattedDataType => !checkIfNullOrUndefined(el.y)),\r\n ) || '',\r\n opacity: 1,\r\n stroke:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {d.map((el, j) => (\r\n <motion.g key={j}>\r\n {!checkIfNullOrUndefined(el.y) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={graphWidth / d.length < 5 ? 0 : graphWidth / d.length < 20 ? 2 : 4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n cx: x(el.date),\r\n cy: y(el.y as number),\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n cx: x(el.date),\r\n cy: y(el.y as number),\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n ) : null}\r\n </>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {((highlightedLines.indexOf(d[0].label) !== -1 && showHighlightedLinesLabels) ||\r\n mouseOverData?.label === d[0].label) &&\r\n showLabels ? (\r\n <motion.text\r\n className='text-sm font-bold'\r\n dx={5}\r\n dy={4}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n x: x(d[d.length - 1].date),\r\n y: y(d[d.length - 1].y as number),\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !d[0].color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(d[0].color)],\r\n x: x(d[d.length - 1].date),\r\n y: y(d[d.length - 1].y as number),\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n >\r\n {d[0].label}\r\n </motion.text>\r\n ) : null}\r\n </motion.g>\r\n ))}\r\n {mouseOverData ? (\r\n <>\r\n <text\r\n y={y(mouseOverData.y) - 8}\r\n x={x(mouseOverData.date)}\r\n className={cn('graph-value text-sm font-bold', classNames?.graphObjectValues)}\r\n style={{\r\n fill:\r\n data.filter(el => el.color).length === 0\r\n ? lineColors[0]\r\n : !mouseOverData.color\r\n ? Colors.gray\r\n : lineColors[colorDomain.indexOf(mouseOverData.color)],\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(mouseOverData.y, naLabel, precision, prefix, suffix)}\r\n </text>\r\n {showDateOnHover && (\r\n <text\r\n y={y(mouseOverData.y) + 20}\r\n x={x(mouseOverData.date)}\r\n className={cn(\r\n 'graph-value text-sm fill-primary-gray-500 dark:fill-primary-gray-400',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {format(new Date(mouseOverData.date), dateFormat || 'yyyy')}\r\n </text>\r\n )}\r\n </>\r\n ) : null}\r\n </motion.g>\r\n {dataFormatted\r\n .filter(d => !checkIfNullOrUndefined(d.y))\r\n .map((d, i) => {\r\n return (\r\n <g key={i}>\r\n <path\r\n d={voronoiDiagram.renderCell(\r\n dataFormatted.findIndex(el => el.label === d.label && el.date === d.date),\r\n )}\r\n opacity={0}\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 onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n />\r\n </g>\r\n );\r\n })}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - leftMargin}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n <g>\r\n {annotations.map((d, i) => {\r\n const endPoints = getLineEndPoint(\r\n {\r\n x: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n },\r\n {\r\n x: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n y: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n },\r\n checkIfNullOrUndefined(d.connectorRadius) ? 3.5 : (d.connectorRadius as number),\r\n );\r\n const connectorSettings = d.showConnector\r\n ? {\r\n y1: endPoints.y,\r\n x1: endPoints.x,\r\n y2: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0)\r\n : 0 + (d.yOffset || 0),\r\n x2: d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n cy: d.yCoordinate ? y(d.yCoordinate as number) : 0,\r\n cx: d.xCoordinate ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) : 0,\r\n circleRadius: checkIfNullOrUndefined(d.connectorRadius)\r\n ? 3.5\r\n : (d.connectorRadius as number),\r\n strokeWidth: d.showConnector === true ? 2 : Math.min(d.showConnector || 0, 1),\r\n }\r\n : undefined;\r\n const labelSettings = {\r\n y: d.yCoordinate\r\n ? y(d.yCoordinate as number) + (d.yOffset || 0) - 8\r\n : 0 + (d.yOffset || 0) - 8,\r\n x: rtl\r\n ? 0\r\n : d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0),\r\n width: rtl\r\n ? d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)\r\n : graphWidth +\r\n margin.right -\r\n (d.xCoordinate\r\n ? x(parse(`${d.xCoordinate}`, dateFormat, new Date())) + (d.xOffset || 0)\r\n : 0 + (d.xOffset || 0)),\r\n maxWidth: d.maxWidth,\r\n fontWeight: d.fontWeight,\r\n align: d.align,\r\n };\r\n return (\r\n <Annotation\r\n key={i}\r\n color={d.color}\r\n connectorsSettings={connectorSettings}\r\n labelSettings={labelSettings}\r\n text={d.text}\r\n classNames={d.classNames}\r\n styles={d.styles}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n );\r\n })}\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n AnnotationSettingsDataType,\r\n CustomHighlightAreaSettingsDataType,\r\n Languages,\r\n MultiLineAltChartDataType,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n HighlightAreaSettingsDataType,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n AnimateDataType,\r\n} from '@/Types';\r\nimport { 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 { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\nimport { getNoOfTicks } from '@/Utils/getNoOfTicks';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: MultiLineAltChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Color or array of colors for lines */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: (string | number)[];\r\n /** Toggle the visibility of labels of the lines when highlighted or mouse hovered */\r\n showLabels?: boolean;\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Maximum value for the chart */\r\n maxValue?: number;\r\n /** Minimum value for the chart */\r\n minValue?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Maximum value of the date for the chart */\r\n maxDate?: string | number;\r\n /** Minimum value of the date for the chart */\r\n minDate?: string | number;\r\n /** No. of ticks on the x-axis */\r\n noOfXTicks?: number;\r\n /** No. of ticks on the y-axis */\r\n noOfYTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Stroke width of the line */\r\n strokeWidth?: number;\r\n /** Toggle the initial animation of the line. If the type is number then it uses the number as the time in seconds for animation. */\r\n animate?: boolean | AnimateDataType;\r\n /** Format of the date in the data object. Available formats can be found [here](https://date-fns.org/docs/format) */\r\n dateFormat?: string;\r\n /** Title for the Y-axis */\r\n yAxisTitle?: string;\r\n /** 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 /** Toggle visibility of year labels on hover. */\r\n showDateOnHover?: boolean;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedLines?: (string | number)[];\r\n /** Defines if the labels should be shown for highlighted lines. */\r\n showHighlightedLinesLabels?: boolean;\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Annotations on the chart */\r\n annotations?: AnnotationSettingsDataType[];\r\n /** Highlighted area(square) on the chart */\r\n highlightAreaSettings?: HighlightAreaSettingsDataType[];\r\n /** Highlighted area(custom shape) on the chart */\r\n customHighlightAreaSettings?: CustomHighlightAreaSettingsDataType[];\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function MultiLineAltChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n showNAColor = true,\r\n colors,\r\n colorDomain,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n noOfXTicks = 10,\r\n dateFormat = 'yyyy',\r\n padding,\r\n backgroundColor = false,\r\n leftMargin = 30,\r\n rightMargin = 50,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n showColorScale = true,\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n showLabels = true,\r\n showHighlightedLinesLabels = false,\r\n refValues = [],\r\n highlightAreaSettings = [],\r\n graphID,\r\n minValue,\r\n maxValue,\r\n highlightedLines = [],\r\n graphDownload = false,\r\n dataDownload = false,\r\n animate = false,\r\n language = 'en',\r\n colorLegendTitle,\r\n minHeight = 0,\r\n strokeWidth = 2,\r\n showDots = true,\r\n annotations = [],\r\n customHighlightAreaSettings = [],\r\n theme = 'light',\r\n ariaLabel,\r\n yAxisTitle,\r\n noOfYTicks = 5,\r\n minDate,\r\n maxDate,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n naLabel = 'NA',\r\n showDateOnHover = false,\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 useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as string[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n lineColors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n width={svgWidth}\r\n height={svgHeight}\r\n dateFormat={dateFormat}\r\n noOfXTicks={noOfXTicks ?? getNoOfTicks(svgWidth)}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n suffix={suffix}\r\n prefix={prefix}\r\n highlightAreaSettings={highlightAreaSettings}\r\n refValues={refValues}\r\n minValue={minValue}\r\n maxValue={maxValue}\r\n highlightedLines={highlightedLines}\r\n showHighlightedLinesLabels={showHighlightedLinesLabels}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n rtl={language === 'he' || language === 'ar'}\r\n strokeWidth={strokeWidth}\r\n showDots={showDots}\r\n annotations={annotations}\r\n customHighlightAreaSettings={customHighlightAreaSettings}\r\n yAxisTitle={yAxisTitle}\r\n noOfYTicks={noOfYTicks}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n curveType={curveType}\r\n styles={styles}\r\n classNames={classNames}\r\n selectedColor={selectedColor}\r\n showLabels={showLabels}\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n naLabel={naLabel}\r\n showDateOnHover={showDateOnHover}\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":["permute","source","keys","key","sort","values","F","f","index","d","i","j","c","ascendingDefined","compareDefined","compare","ascending","a","b","x","Graph","props","$","_c","data","width","height","lineColors","dateFormat","noOfXTicks","rightMargin","topMargin","bottomMargin","suffix","prefix","leftMargin","tooltip","onSeriesMouseOver","refValues","highlightAreaSettings","minValue","maxValue","highlightedLines","animate","rtl","strokeWidth","showDots","annotations","customHighlightAreaSettings","yAxisTitle","noOfYTicks","minDate","maxDate","curveType","styles","colorDomain","selectedColor","classNames","showLabels","dimmedOpacity","precision","naLabel","customLayers","showHighlightedLinesLabels","showDateOnHover","svgRef","useRef","t0","amount","once","isInView","useInView","hasAnimatedOnce","setHasAnimatedOnce","useState","t1","t2","duration","timeout","setTimeout","clearTimeout","useEffect","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","t3","date","parse","Date","dataFormatted","orderBy","map","filter","_temp","labels","uniqBy","t4","d_1","dates","_temp2","mouseOverData","setMouseOverData","undefined","eventX","setEventX","eventY","setEventY","t5","t6","top","bottom","left","right","margin","MouseoverRectRef","lineArray","d_2","el","label","t7","t8","d_3","coordinates","highlightAreaSettingsFormatted","t9","d_4","el_0","customHighlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam","checkIfNullOrUndefined","Math","min","_temp3","_temp4","_temp5","_temp6","_temp7","_temp8","maxParam","max","_temp9","_temp0","_temp1","_temp10","scaleTime","domain","range","t10","y","scaleLinear","nice","voronoiDiagram","Delaunay","from","_temp11","d_16","d_17","voronoi","lineShape","line","d_18","d_19","yTicks","ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp12","invert","pointer","clientY","clientX","mouseout","select","current","on","t11","jsx","HighlightArea","t12","yAxis","gridLines","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","numberFormattingFunction","t24","t25","t26","t27","dx","dy","t28","xAxis","axis","t29","t30","t31","t32","t33","t34","Axis","t35","t36","t37","title","t38","t39","AxisTitle","t40","d_24","format","t41","t42","d_25","t43","t44","t45","t46","t47","cn","t48","t49","t50","t51","_temp15","_temp16","t52","_temp27","d_30","renderCell","findIndex","el_12","event_0","event_1","t53","Fragment","el_13","i_0","RefLineY","text","color","value","t54","t55","d_31","i_1","endPoints","getLineEndPoint","xCoordinate","xOffset","yCoordinate","yOffset","connectorRadius","connectorSettings","showConnector","y1","x1","y2","x2","cy","cx","circleRadius","labelSettings","maxWidth","fontWeight","align","Annotation","t56","_temp28","_temp29","t57","Tooltip","jsxs","motion","CustomArea","YTicksAndGridLines","_temp13","_temp14","d_23","XTicksAndGridLines","d_28","opacity","transition","initial","indexOf","whileInView","_temp17","fill","pathLength","_temp18","stroke","_temp19","Colors","gray","_temp20","_temp21","el_6","j_0","_temp22","_temp23","delay","_temp24","_temp25","graphObjectValues","_temp26","textAnchor","d_33","layer","d_32","position","d_29","el_11","el_10","el_9","el_8","el_7","el_5","el_4","el_3","el_2","el_1","d_27","d_26","d_22","d_21","d_20","d_15","d_12","d_11","d_14","d_13","d_6","d_5","d_8","d_7","d_10","d_9","d_0","MultiLineAltChart","graphTitle","showNAColor","colors","sources","graphDescription","footNote","padding","backgroundColor","showColorScale","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","Symbol","for","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","colorLegend","ColorLegendWithMouseOver","categoricalColors","EmptyState","primaryColors","getNoOfTicks","GraphArea","footnote","GraphFooter","GraphContainer"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -493,11 +493,8 @@ declare interface GraphSettingsDataType {
|
|
|
493
493
|
circularBoundary?: boolean;
|
|
494
494
|
showDataMinMax?: boolean;
|
|
495
495
|
showVoronoiTesselation?: boolean;
|
|
496
|
-
mapOverlay?:
|
|
497
|
-
|
|
498
|
-
mapBorderWidth?: number;
|
|
499
|
-
mapBorderColor?: string;
|
|
500
|
-
};
|
|
496
|
+
mapOverlay?: MapOverlayDataType;
|
|
497
|
+
useVoronoiInteraction?: boolean;
|
|
501
498
|
}
|
|
502
499
|
|
|
503
500
|
declare type GraphType = GraphTypeForGriddedGraph;
|
|
@@ -529,6 +526,12 @@ declare interface MapLegendDataType {
|
|
|
529
526
|
legend: string | React.ReactNode;
|
|
530
527
|
}
|
|
531
528
|
|
|
529
|
+
declare interface MapOverlayDataType {
|
|
530
|
+
mapData: FeatureCollection | string;
|
|
531
|
+
mapBorderWidth?: number;
|
|
532
|
+
mapBorderColor?: string;
|
|
533
|
+
}
|
|
534
|
+
|
|
532
535
|
declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
|
|
533
536
|
|
|
534
537
|
declare interface PerformanceIntensiveDashboardColumnDataType extends DashboardColumnDataWithoutGraphType {
|
|
@@ -512,11 +512,8 @@ declare interface GraphSettingsDataType {
|
|
|
512
512
|
circularBoundary?: boolean;
|
|
513
513
|
showDataMinMax?: boolean;
|
|
514
514
|
showVoronoiTesselation?: boolean;
|
|
515
|
-
mapOverlay?:
|
|
516
|
-
|
|
517
|
-
mapBorderWidth?: number;
|
|
518
|
-
mapBorderColor?: string;
|
|
519
|
-
};
|
|
515
|
+
mapOverlay?: MapOverlayDataType;
|
|
516
|
+
useVoronoiInteraction?: boolean;
|
|
520
517
|
}
|
|
521
518
|
|
|
522
519
|
declare type GraphType = GraphTypeForGriddedGraph;
|
|
@@ -548,6 +545,12 @@ declare interface MapLegendDataType {
|
|
|
548
545
|
legend: string | React.ReactNode;
|
|
549
546
|
}
|
|
550
547
|
|
|
548
|
+
declare interface MapOverlayDataType {
|
|
549
|
+
mapData: FeatureCollection | string;
|
|
550
|
+
mapBorderWidth?: number;
|
|
551
|
+
mapBorderColor?: string;
|
|
552
|
+
}
|
|
553
|
+
|
|
551
554
|
declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
|
|
552
555
|
|
|
553
556
|
declare interface PerformanceIntensiveDashboardColumnDataType extends DashboardColumnDataWithoutGraphType {
|
|
@@ -414,11 +414,8 @@ declare interface GraphSettingsDataType {
|
|
|
414
414
|
circularBoundary?: boolean;
|
|
415
415
|
showDataMinMax?: boolean;
|
|
416
416
|
showVoronoiTesselation?: boolean;
|
|
417
|
-
mapOverlay?:
|
|
418
|
-
|
|
419
|
-
mapBorderWidth?: number;
|
|
420
|
-
mapBorderColor?: string;
|
|
421
|
-
};
|
|
417
|
+
mapOverlay?: MapOverlayDataType;
|
|
418
|
+
useVoronoiInteraction?: boolean;
|
|
422
419
|
}
|
|
423
420
|
|
|
424
421
|
declare type GraphType = GraphTypeForGriddedGraph;
|
|
@@ -455,6 +452,12 @@ declare interface MapLegendDataType {
|
|
|
455
452
|
legend: string | React.ReactNode;
|
|
456
453
|
}
|
|
457
454
|
|
|
455
|
+
declare interface MapOverlayDataType {
|
|
456
|
+
mapData: FeatureCollection | string;
|
|
457
|
+
mapBorderWidth?: number;
|
|
458
|
+
mapBorderColor?: string;
|
|
459
|
+
}
|
|
460
|
+
|
|
458
461
|
declare type MapProjectionTypes = 'mercator' | 'equalEarth' | 'naturalEarth' | 'orthographic' | 'albersUSA';
|
|
459
462
|
|
|
460
463
|
declare interface PerformanceIntensiveChaptersDataType {
|