@undp/data-viz 2.3.19 → 2.4.0
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/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.js +1360 -1363
- package/dist/BarGraph.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.js +302 -305
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.js +4 -4
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.js +591 -594
- package/dist/BulletChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.js +4 -4
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.js +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.js +255 -258
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.js +553 -556
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/{GraphEl-Dorm_qQE.js → GraphEl-B73N4RIA.js} +2 -2
- package/dist/{GraphEl-Dorm_qQE.js.map → GraphEl-B73N4RIA.js.map} +1 -1
- package/dist/{GraphEl-D8WRC8-j.cjs → GraphEl-Lt1og0C-.cjs} +2 -2
- package/dist/{GraphEl-D8WRC8-j.cjs.map → GraphEl-Lt1og0C-.cjs.map} +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.js +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.js +1 -1
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.cjs.map +1 -1
- package/dist/HybridMap.js +310 -313
- package/dist/HybridMap.js.map +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.js +269 -272
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.js +319 -322
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.js +3 -3
- package/dist/RadarChart.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.js +274 -280
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.js +341 -344
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.js +1 -1
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.js +251 -254
- package/dist/SlopeChart.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.js +292 -295
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.js +3 -3
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.js +196 -199
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/WaterfallChart.cjs +1 -1
- package/dist/WaterfallChart.cjs.map +1 -1
- package/dist/WaterfallChart.js +274 -277
- package/dist/WaterfallChart.js.map +1 -1
- package/dist/index-B0Awa_de.js +377 -0
- package/dist/index-B0Awa_de.js.map +1 -0
- package/dist/index-CP8cmNzt.cjs +2 -0
- package/dist/index-CP8cmNzt.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/index-Bdo_HXb_.cjs +0 -2
- package/dist/index-Bdo_HXb_.cjs.map +0 -1
- package/dist/index-CGrBpeUa.js +0 -380
- package/dist/index-CGrBpeUa.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLineChart.js","sources":["../src/Components/Graphs/LineCharts/MultiLineChart/Graph.tsx","../src/Components/Graphs/LineCharts/MultiLineChart/index.tsx"],"sourcesContent":["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 { cn } from '@undp/design-system-react/cn';\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 MultiLineChartDataType,\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\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: MultiLineChartDataType[];\r\n lineColors: string[];\r\n width: number;\r\n height: number;\r\n dateFormat: string;\r\n noOfXTicks: number;\r\n labels: (string | 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 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 showColorLegendAtTop: boolean;\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 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 curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n dashedLines: (string | number)[];\r\n dashSettings: string[];\r\n labelsToBeHidden: (string | number)[];\r\n revealClipId: string;\r\n locale: string;\r\n naLabel: string;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y: number;\r\n date: Date;\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 labels,\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 showValues,\r\n showColorLegendAtTop,\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 classNames,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n dashedLines,\r\n dashSettings,\r\n labelsToBeHidden,\r\n revealClipId,\r\n locale,\r\n naLabel,\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 // 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 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 );\r\n const dataArray = dataFormatted[0].y.map((_d, i) => {\r\n return dataFormatted\r\n .map(el => ({\r\n ...el,\r\n y: el.y[i],\r\n }))\r\n .filter(el => !checkIfNullOrUndefined(el.y));\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()) : dataFormatted[0].date;\r\n const maxYear = maxDate\r\n ? parse(`${maxDate}`, dateFormat, new Date())\r\n : dataFormatted[dataFormatted.length - 1].date;\r\n const minParam: number = checkIfNullOrUndefined(minValue)\r\n ? Math.min(\r\n ...dataFormatted.map(d =>\r\n Math.min(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\r\n ? Math.min(\r\n ...dataFormatted.map(d =>\r\n Math.min(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n ) > 0\r\n ? 0\r\n : Math.min(\r\n ...dataFormatted.map(d =>\r\n Math.min(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\r\n : 0\r\n : (minValue as number);\r\n const maxParam: number = Math.max(\r\n ...dataFormatted.map(d =>\r\n Math.max(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\r\n ? Math.max(\r\n ...dataFormatted.map(d =>\r\n Math.max(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\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 lineShape = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y))\r\n .curve(curve);\r\n\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 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 <defs>\r\n <clipPath id={revealClipId}>\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n height={graphHeight}\r\n variants={{\r\n initial: { width: 0 },\r\n whileInView: {\r\n width: graphWidth,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </clipPath>\r\n </defs>\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 locale={locale}\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 undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\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 locale={locale}\r\n />\r\n </g>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g>\r\n {dataArray.map((d, i) => (\r\n <motion.g\r\n key={labels[i]}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity:\r\n highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(labels[i]) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : 1,\r\n },\r\n whileInView: {\r\n opacity:\r\n highlightedLines.length !== 0\r\n ? highlightedLines.indexOf(labels[i]) !== -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 style={{\r\n fill: 'none',\r\n strokeWidth,\r\n }}\r\n clipPath={`url(#${revealClipId})`}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n ...(dashedLines.length === 0 ? { 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: lineColors[i],\r\n },\r\n whileInView: {\r\n ...(dashedLines.length === 0 ? { 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: lineColors[i],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n strokeDasharray={\r\n dashedLines.includes(labels[i])\r\n ? dashSettings[i % dashSettings.length]\r\n : undefined\r\n }\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {d.map((el, j) => (\r\n <g key={j}>\r\n {!checkIfNullOrUndefined(el.y) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={\r\n graphWidth / dataFormatted.length < 5\r\n ? 0\r\n : graphWidth / dataFormatted.length < 20\r\n ? 2\r\n : 4\r\n }\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill: lineColors[i],\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: lineColors[i],\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 {showValues ? (\r\n <motion.text\r\n dy={-8}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill: lineColors[i],\r\n x: x(el.date),\r\n y: y(el.y as number),\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[i],\r\n x: x(el.date),\r\n y: y(el.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 {numberFormattingFunction(\r\n el.y,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n </g>\r\n ))}\r\n {showColorLegendAtTop || labelsToBeHidden.includes(labels[i]) ? null : (\r\n <motion.text\r\n className='text-xs'\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: lineColors[i],\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: lineColors[i],\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 {labels[i]}\r\n </motion.text>\r\n )}\r\n </motion.g>\r\n ))}\r\n {mouseOverData ? (\r\n <line\r\n y1={0}\r\n y2={graphHeight}\r\n x1={x(mouseOverData.date)}\r\n x2={x(mouseOverData.date)}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-700 dark:stroke-primary-gray-100',\r\n classNames?.mouseOverLine,\r\n )}\r\n style={styles?.mouseOverLine}\r\n />\r\n ) : null}\r\n </g>\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 <rect\r\n ref={MouseoverRectRef}\r\n style={{\r\n fill: 'none',\r\n pointerEvents: 'all',\r\n }}\r\n width={graphWidth}\r\n height={graphHeight}\r\n />\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 MultiLineChartDataType,\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 { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\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: MultiLineChartDataType[];\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 of the lines */\r\n lineColors?: string[];\r\n /** Toggle the visibility of color legend between the top of the graphs and next to the line */\r\n showColorLegendAtTop?: 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 /** Array of labels of line which are dashed */\r\n dashedLines?: (string | number)[];\r\n /** Array of dash settings that define the dash style for the dashed line. If the length of the array is less than length of dashedLines then it loop around. */\r\n dashSettings?: string[];\r\n /** Defines which labels are hidden from the color scale and the graph */\r\n labelsToBeHidden?: (string | 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 values */\r\n showValues?: boolean;\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: 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 /** Labels for the lines */\r\n labels: (string | number)[];\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 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 /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\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 MultiLineChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n lineColors = Colors.light.categoricalColors.colors,\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 labels,\r\n padding,\r\n showValues = false,\r\n backgroundColor = false,\r\n leftMargin = 30,\r\n rightMargin = 50,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n showColorLegendAtTop = 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 dashedLines = [],\r\n dashSettings = ['5 5'],\r\n labelsToBeHidden = [],\r\n showColorScale = true,\r\n locale = 'en',\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\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 {showColorLegendAtTop && showColorScale && data.length > 0 ? (\r\n <ColorLegend\r\n colorDomain={labels}\r\n colorLegendTitle={colorLegendTitle}\r\n labelsToBeHidden={labelsToBeHidden}\r\n colors={lineColors}\r\n showNAColor={false}\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={lineColors}\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 labels={labels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showColorLegendAtTop={showColorScale ? showColorLegendAtTop : true}\r\n showValues={showValues}\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 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 dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n labelsToBeHidden={labelsToBeHidden}\r\n dashedLines={dashedLines}\r\n dashSettings={dashSettings}\r\n revealClipId={generateRandomString(8)}\r\n locale={locale}\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":["Graph","props","$","_c","data","width","height","lineColors","dateFormat","noOfXTicks","labels","rightMargin","topMargin","bottomMargin","suffix","prefix","leftMargin","tooltip","onSeriesMouseOver","showValues","showColorLegendAtTop","refValues","highlightAreaSettings","minValue","maxValue","highlightedLines","animate","rtl","strokeWidth","showDots","annotations","customHighlightAreaSettings","yAxisTitle","noOfYTicks","minDate","maxDate","curveType","styles","classNames","dimmedOpacity","precision","customLayers","dashedLines","dashSettings","labelsToBeHidden","revealClipId","locale","naLabel","svgRef","useRef","t0","amount","once","isInView","useInView","hasAnimatedOnce","setHasAnimatedOnce","useState","t1","t2","duration","timeout","setTimeout","clearTimeout","useEffect","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","undefined","eventX","setEventX","eventY","setEventY","t3","t4","top","bottom","left","right","margin","MouseoverRectRef","t5","d","date","parse","Date","dataFormatted","orderBy","map","dataArray","y","_d","i","el","filter","_temp","t6","t7","d_0","coordinates","highlightAreaSettingsFormatted","t8","d_1","el_1","j","customHighlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam","checkIfNullOrUndefined","Math","min","_temp3","_temp5","_temp7","maxParam","max","_temp9","_temp1","x","scaleTime","domain","range","t9","scaleLinear","nice","lineShape","line","d_7","d_8","yTicks","ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp10","invert","pointer","clientY","clientX","mouseout","select","current","on","t10","Symbol","for","t11","t12","initial","whileInView","transition","t13","t14","jsx","motion","t15","t16","HighlightArea","t17","yAxis","gridLines","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","numberFormattingFunction","t29","t30","t31","t32","dx","dy","t33","xAxis","axis","t34","t35","label","t36","t37","t38","t39","Axis","t40","t41","t42","title","t43","t44","AxisTitle","t45","d_13","format","t46","t47","d_14","t48","t49","t50","t51","t52","cn","t53","t54","t55","t56","_temp13","_temp14","t57","d_17","i_0","jsxs","opacity","indexOf","fill","pathLength","_temp15","stroke","_temp16","includes","el_9","j_0","Fragment","cx","cy","delay","textAnchor","graphObjectValues","t58","mouseOverLine","t59","t60","el_10","i_1","RefLineY","text","color","value","t61","t62","d_18","i_2","endPoints","getLineEndPoint","xCoordinate","xOffset","yCoordinate","yOffset","connectorRadius","connectorSettings","showConnector","y1","x1","y2","x2","circleRadius","labelSettings","maxWidth","fontWeight","align","Annotation","t63","_temp17","_temp18","t64","pointerEvents","t65","t66","Tooltip","CustomArea","YTicksAndGridLines","_temp11","_temp12","d_12","XTicksAndGridLines","d_20","layer","d_19","position","el_8","el_7","d_16","d_15","d_11","d_10","d_9","d_5","_temp0","el_5","d_6","_temp8","el_6","d_2","_temp6","el_2","d_3","_temp4","el_3","d_4","_temp2","el_4","el_0","MultiLineChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","colorLegend","ColorLegend","EmptyState","getNoOfTicks","generateRandomString","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiLineChart.js","sources":["../src/Components/Graphs/LineCharts/MultiLineChart/Graph.tsx","../src/Components/Graphs/LineCharts/MultiLineChart/index.tsx"],"sourcesContent":["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 { cn } from '@undp/design-system-react/cn';\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 MultiLineChartDataType,\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\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: MultiLineChartDataType[];\r\n lineColors: string[];\r\n width: number;\r\n height: number;\r\n dateFormat: string;\r\n noOfXTicks: number;\r\n labels: (string | 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 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 showColorLegendAtTop: boolean;\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 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 curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n dashedLines: (string | number)[];\r\n dashSettings: string[];\r\n labelsToBeHidden: (string | number)[];\r\n revealClipId: string;\r\n locale: string;\r\n naLabel: string;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y: number;\r\n date: Date;\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 labels,\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 showValues,\r\n showColorLegendAtTop,\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 classNames,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n dashedLines,\r\n dashSettings,\r\n labelsToBeHidden,\r\n revealClipId,\r\n locale,\r\n naLabel,\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 // 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 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 );\r\n const dataArray = dataFormatted[0].y.map((_d, i) => {\r\n return dataFormatted\r\n .map(el => ({\r\n ...el,\r\n y: el.y[i],\r\n }))\r\n .filter(el => !checkIfNullOrUndefined(el.y));\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()) : dataFormatted[0].date;\r\n const maxYear = maxDate\r\n ? parse(`${maxDate}`, dateFormat, new Date())\r\n : dataFormatted[dataFormatted.length - 1].date;\r\n const minParam: number = checkIfNullOrUndefined(minValue)\r\n ? Math.min(\r\n ...dataFormatted.map(d =>\r\n Math.min(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\r\n ? Math.min(\r\n ...dataFormatted.map(d =>\r\n Math.min(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n ) > 0\r\n ? 0\r\n : Math.min(\r\n ...dataFormatted.map(d =>\r\n Math.min(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\r\n : 0\r\n : (minValue as number);\r\n const maxParam: number = Math.max(\r\n ...dataFormatted.map(d =>\r\n Math.max(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\r\n ? Math.max(\r\n ...dataFormatted.map(d =>\r\n Math.max(...(d.y.filter(el => !checkIfNullOrUndefined(el)) as number[])),\r\n ),\r\n )\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 lineShape = line<FormattedDataType>()\r\n .x(d => x(d.date))\r\n .y(d => y(d.y))\r\n .curve(curve);\r\n\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 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 <defs>\r\n <clipPath id={revealClipId}>\r\n <motion.rect\r\n x={0}\r\n y={0}\r\n height={graphHeight}\r\n variants={{\r\n initial: { width: 0 },\r\n whileInView: {\r\n width: graphWidth,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </clipPath>\r\n </defs>\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 locale={locale}\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 undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\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 locale={locale}\r\n />\r\n </g>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g>\r\n {dataArray.map((d, i) => (\r\n <motion.g\r\n key={labels[i]}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: highlightedLines\r\n ? highlightedLines.indexOf(labels[i]) !== -1\r\n ? 1\r\n : dimmedOpacity\r\n : 1,\r\n },\r\n whileInView: {\r\n opacity: highlightedLines\r\n ? highlightedLines.indexOf(labels[i]) !== -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 style={{\r\n fill: 'none',\r\n strokeWidth,\r\n }}\r\n clipPath={`url(#${revealClipId})`}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n ...(dashedLines.length === 0 ? { 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: lineColors[i],\r\n },\r\n whileInView: {\r\n ...(dashedLines.length === 0 ? { 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: lineColors[i],\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n strokeDasharray={\r\n dashedLines.includes(labels[i])\r\n ? dashSettings[i % dashSettings.length]\r\n : undefined\r\n }\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {d.map((el, j) => (\r\n <g key={j}>\r\n {!checkIfNullOrUndefined(el.y) ? (\r\n <>\r\n {showDots ? (\r\n <motion.circle\r\n r={\r\n graphWidth / dataFormatted.length < 5\r\n ? 0\r\n : graphWidth / dataFormatted.length < 20\r\n ? 2\r\n : 4\r\n }\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill: lineColors[i],\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: lineColors[i],\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 {showValues ? (\r\n <motion.text\r\n dy={-8}\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value text-xs font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n opacity: 0,\r\n fill: lineColors[i],\r\n x: x(el.date),\r\n y: y(el.y as number),\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[i],\r\n x: x(el.date),\r\n y: y(el.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 {numberFormattingFunction(\r\n el.y,\r\n naLabel,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n </g>\r\n ))}\r\n {showColorLegendAtTop || labelsToBeHidden.includes(labels[i]) ? null : (\r\n <motion.text\r\n className='text-xs'\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: lineColors[i],\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: lineColors[i],\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 {labels[i]}\r\n </motion.text>\r\n )}\r\n </motion.g>\r\n ))}\r\n {mouseOverData ? (\r\n <line\r\n y1={0}\r\n y2={graphHeight}\r\n x1={x(mouseOverData.date)}\r\n x2={x(mouseOverData.date)}\r\n className={cn(\r\n 'undp-tick-line stroke-primary-gray-700 dark:stroke-primary-gray-100',\r\n classNames?.mouseOverLine,\r\n )}\r\n style={styles?.mouseOverLine}\r\n />\r\n ) : null}\r\n </g>\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 <rect\r\n ref={MouseoverRectRef}\r\n style={{\r\n fill: 'none',\r\n pointerEvents: 'all',\r\n }}\r\n width={graphWidth}\r\n height={graphHeight}\r\n />\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 MultiLineChartDataType,\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 { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\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: MultiLineChartDataType[];\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 of the lines */\r\n lineColors?: string[];\r\n /** Toggle the visibility of color legend between the top of the graphs and next to the line */\r\n showColorLegendAtTop?: 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 /** Array of labels of line which are dashed */\r\n dashedLines?: (string | number)[];\r\n /** Array of dash settings that define the dash style for the dashed line. If the length of the array is less than length of dashedLines then it loop around. */\r\n dashSettings?: string[];\r\n /** Defines which labels are hidden from the color scale and the graph */\r\n labelsToBeHidden?: (string | 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 values */\r\n showValues?: boolean;\r\n /** Toggle visibility of dots on the line */\r\n showDots?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: 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 /** Labels for the lines */\r\n labels: (string | number)[];\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 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 /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Defines how “NA” values should be displayed/labelled in the graph */\r\n naLabel?: string;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\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 MultiLineChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n lineColors = Colors.light.categoricalColors.colors,\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 labels,\r\n padding,\r\n showValues = false,\r\n backgroundColor = false,\r\n leftMargin = 30,\r\n rightMargin = 50,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n tooltip,\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n showColorLegendAtTop = 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 dashedLines = [],\r\n dashSettings = ['5 5'],\r\n labelsToBeHidden = [],\r\n showColorScale = true,\r\n locale = 'en',\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\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 {showColorLegendAtTop && showColorScale && data.length > 0 ? (\r\n <ColorLegend\r\n colorDomain={labels}\r\n colorLegendTitle={colorLegendTitle}\r\n labelsToBeHidden={labelsToBeHidden}\r\n colors={lineColors}\r\n showNAColor={false}\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={lineColors}\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 labels={labels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showColorLegendAtTop={showColorScale ? showColorLegendAtTop : true}\r\n showValues={showValues}\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 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 dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n labelsToBeHidden={labelsToBeHidden}\r\n dashedLines={dashedLines}\r\n dashSettings={dashSettings}\r\n revealClipId={generateRandomString(8)}\r\n locale={locale}\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":["Graph","props","$","_c","data","width","height","lineColors","dateFormat","noOfXTicks","labels","rightMargin","topMargin","bottomMargin","suffix","prefix","leftMargin","tooltip","onSeriesMouseOver","showValues","showColorLegendAtTop","refValues","highlightAreaSettings","minValue","maxValue","highlightedLines","animate","rtl","strokeWidth","showDots","annotations","customHighlightAreaSettings","yAxisTitle","noOfYTicks","minDate","maxDate","curveType","styles","classNames","dimmedOpacity","precision","customLayers","dashedLines","dashSettings","labelsToBeHidden","revealClipId","locale","naLabel","svgRef","useRef","t0","amount","once","isInView","useInView","hasAnimatedOnce","setHasAnimatedOnce","useState","t1","t2","duration","timeout","setTimeout","clearTimeout","useEffect","curve","curveLinear","curveStep","curveStepAfter","curveStepBefore","curveMonotoneX","mouseOverData","setMouseOverData","undefined","eventX","setEventX","eventY","setEventY","t3","t4","top","bottom","left","right","margin","MouseoverRectRef","t5","d","date","parse","Date","dataFormatted","orderBy","map","dataArray","y","_d","i","el","filter","_temp","t6","t7","d_0","coordinates","highlightAreaSettingsFormatted","t8","d_1","el_1","j","customHighlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam","checkIfNullOrUndefined","Math","min","_temp3","_temp5","_temp7","maxParam","max","_temp9","_temp1","x","scaleTime","domain","range","t9","scaleLinear","nice","lineShape","line","d_7","d_8","yTicks","ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp10","invert","pointer","clientY","clientX","mouseout","select","current","on","t10","Symbol","for","t11","t12","initial","whileInView","transition","t13","t14","jsx","motion","t15","t16","HighlightArea","t17","yAxis","gridLines","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","numberFormattingFunction","t29","t30","t31","t32","dx","dy","t33","xAxis","axis","t34","t35","label","t36","t37","t38","t39","Axis","t40","t41","t42","title","t43","t44","AxisTitle","t45","d_13","format","t46","t47","d_14","t48","t49","t50","t51","t52","cn","t53","t54","t55","t56","_temp13","_temp14","t57","d_17","i_0","jsxs","opacity","indexOf","fill","pathLength","_temp15","stroke","_temp16","includes","el_9","j_0","Fragment","cx","cy","delay","textAnchor","graphObjectValues","t58","mouseOverLine","t59","t60","el_10","i_1","RefLineY","text","color","value","t61","t62","d_18","i_2","endPoints","getLineEndPoint","xCoordinate","xOffset","yCoordinate","yOffset","connectorRadius","connectorSettings","showConnector","y1","x1","y2","x2","circleRadius","labelSettings","maxWidth","fontWeight","align","Annotation","t63","_temp17","_temp18","t64","pointerEvents","t65","t66","Tooltip","CustomArea","YTicksAndGridLines","_temp11","_temp12","d_12","XTicksAndGridLines","d_20","layer","d_19","position","el_8","el_7","d_16","d_15","d_11","d_10","d_9","d_5","_temp0","el_5","d_6","_temp8","el_6","d_2","_temp6","el_2","d_3","_temp4","el_3","d_4","_temp2","el_4","el_0","MultiLineChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","colorLegendTitle","minHeight","theme","ariaLabel","showColorScale","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","colorLegend","ColorLegend","EmptyState","getNoOfTicks","generateRandomString","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
package/dist/RadarChart.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-D4pAp7u0.cjs"),E=require("react"),Wt=require("./index-DQA8q5sC.cjs"),Bt=require("./Tooltip-Hr46paWP.cjs"),S=require("./Colors.cjs"),St=require("./numberFormattingFunction-Cn9R7CM9.cjs"),z=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Xt=require("./DetailsModal-jmmKRMRM.cjs"),Nt=require("./linear-CgUCbw9F.cjs"),qt=require("./line-DaEMhXmx.cjs"),kt=require("./proxy-CqH8m8IQ.cjs"),Yt=require("./use-in-view-dnRv_qqF.cjs"),zt=require("./index-FXfr51ZM.cjs"),Jt=require("./GraphFooter.cjs"),Kt=require("./GraphHeader.cjs"),Qt=require("./EmptyState-CFmiFPHz.cjs"),Zt=require("./ColorLegendWithMouseOver.cjs"),At=require("./uniqBy-O05lp2S5.cjs"),Vt=require("./GraphContainer-Cul9b74X.cjs");var te=Lt(qt.curveLinear);function Dt(e){this._curve=e}Dt.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),t*-Math.cos(e))}};function Lt(e){function t(o){return new Dt(e(o))}return t._curve=e,t}function ee(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(o){return arguments.length?t(Lt(o)):t()._curve},e}function ie(){return ee(qt.line().curve(te))}function Ot(){}function Pt(e,t,o){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-o),e._x2,e._y2)}function Tt(e,t){this._context=e,this._k=(1-t)/6}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Pt(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Pt(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};(function e(t){function o(c){return new Tt(c,t)}return o.tension=function(c){return e(+c)},o})(0);function $t(e,t){this._context=e,this._k=(1-t)/6}$t.prototype={areaStart:Ot,areaEnd:Ot,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Pt(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const ne=(function e(t){function o(c){return new $t(c,t)}return o.tension=function(c){return e(+c)},o})(0);function Ft(e){this._context=e}Ft.prototype={areaStart:Ot,areaEnd:Ot,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function oe(e){return new Ft(e)}function se(e){const t=n.compilerRuntimeExports.c(107),{data:o,radius:c,lineColors:r,tooltip:W,onSeriesMouseOver:B,onSeriesMouseClick:p,colorDomain:f,detailsOnClick:C,styles:u,classNames:a,selectedColor:N,axisLabels:J,strokeWidth:K,showValues:gt,showDots:yt,rightMargin:Q,topMargin:Z,bottomMargin:X,leftMargin:Y,curveType:Et,noOfTicks:_t,minValue:b,maxValue:A,resetSelectionOnDoubleClick:V,fillShape:tt,highlightedLines:q,animate:h,dimmedOpacity:g,precision:et,customLayers:j,locale:it}=e,R=E.useRef(null);let _;t[0]!==h.amount||t[1]!==h.once?(_={once:h.once,amount:h.amount},t[0]=h.amount,t[1]=h.once,t[2]=_):_=t[2];const D=Yt.useInView(R,_),vt=Et==="linear"?oe:ne;let nt;t[3]!==X||t[4]!==Y||t[5]!==Q||t[6]!==Z?(nt={top:Z,bottom:X,left:Y,right:Q},t[3]=X,t[4]=Y,t[5]=Q,t[6]=Z,t[7]=nt):nt=t[7];const L=nt,v=Math.min((2*c-Y-Q)/2,(2*c-Z-X)/2),[y,Mt]=E.useState(void 0),[I,bt]=E.useState(void 0),[ot,st]=E.useState(void 0),[rt,jt]=E.useState(void 0);let T,$,w,F,G,U,k,O,s,P,at,H,lt,ct;if(t[8]!==h.duration||t[9]!==J||t[10]!==a?.graphObjectValues||t[11]!==a?.xAxis?.axis||t[12]!==a?.xAxis?.gridLines||t[13]!==a?.xAxis?.labels||t[14]!==f||t[15]!==vt||t[16]!==j||t[17]!==o||t[18]!==C||t[19]!==g||t[20]!==tt||t[21]!==q||t[22]!==D||t[23]!==r||t[24]!==it||t[25]!==L.left||t[26]!==L.top||t[27]!==A||t[28]!==b||t[29]!==I||t[30]!==y||t[31]!==_t||t[32]!==p||t[33]!==B||t[34]!==et||t[35]!==c||t[36]!==v||t[37]!==V||t[38]!==N||t[39]!==yt||t[40]!==gt||t[41]!==K||t[42]!==u?.graphObjectValues||t[43]!==u?.xAxis?.axis||t[44]!==u?.xAxis?.gridLines||t[45]!==u?.xAxis?.labels){const l=Nt.linear().domain([0,o[0].values.length]).range([0,2*Math.PI]);let Rt;t[60]!==o||t[61]!==A?(Rt=z.checkIfNullOrUndefined(A)?Math.max(...o.map(je))<0?0:Math.max(...o.map(Me)):A,t[60]=o,t[61]=A,t[62]=Rt):Rt=t[62];const Gt=Rt;let It;t[63]!==o||t[64]!==b?(It=z.checkIfNullOrUndefined(b)?Math.min(...o.map(_e))>=0?0:Math.min(...o.map(ge)):b,t[63]=o,t[64]=b,t[65]=It):It=t[65];const Ut=It,M=Nt.linear().domain([Ut,Gt]).range([0,v]).nice(),Ht=M.ticks(_t),wt=ie().radius(i=>M(i)).angle((i,x)=>l(x)).curve(vt);$=kt.motion.svg,lt=`${c*2}px`,ct=`${c*2}px`,w=`0 0 ${c*2} ${c*2}`,F="ltr",G=R,U="mx-auto",at=`translate(${L.left},${L.top})`,t[66]!==j?(H=j.filter(fe).map(de),t[66]=j,t[67]=H):H=t[67],O=`translate(${v},${v})`,s=J.map((i,x)=>n.jsxRuntimeExports.jsxs("g",{children:[n.jsxRuntimeExports.jsx("line",{x1:0,y1:0,x2:Math.cos(l(x)-Math.PI/2)*v,y2:Math.sin(l(x)-Math.PI/2)*v,className:n.mo("stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550",a?.xAxis?.axis),style:u?.xAxis?.axis},x),n.jsxRuntimeExports.jsx("text",{x:Math.cos(l(x)-Math.PI/2)*(v+6),y:Math.sin(l(x)-Math.PI/2)*(v+6),style:{textAnchor:Math.cos(l(x)-Math.PI/2)<0?"end":Math.cos(l(x)-Math.PI/2)<1e-5?"middle":"start",...u?.xAxis?.labels||""},dy:Math.sin(l(x)-Math.PI/2)<0?0:Math.sin(l(x)-Math.PI/2)<1e-5?5:10,className:n.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",a?.xAxis?.labels),children:i})]},x)),P=Ht.map((i,x)=>n.jsxRuntimeExports.jsxs("g",{children:[n.jsxRuntimeExports.jsx("path",{d:wt(Array(J.length).fill(i))||"",className:n.mo("stroke-primary-gray-500 dark:stroke-primary-gray-550",a?.xAxis?.gridLines),style:{...u?.xAxis?.gridLines,fill:"none"}}),n.jsxRuntimeExports.jsx("foreignObject",{x:-25,y:Math.sin(-Math.PI/2)*M(i)>-1e-4?Math.sin(-Math.PI/2)*M(i)-7:Math.sin(-Math.PI/2)*M(i)-5,width:50,height:12,children:n.jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:n.jsxRuntimeExports.jsx("p",{className:n.mo("fill-primary-gray-500 dark:fill-primary-gray-550 text-xs m-0 py-0 px-1.5 text-center leading-none bg-primary-white dark:bg-primary-gray-700",a?.xAxis?.labels),style:u?.xAxis?.labels,children:St.numberFormattingFunction(i,void 0,et,void 0,void 0,it)})})})]},x)),T=zt.AnimatePresence,k=o.map((i,x)=>n.jsxRuntimeExports.jsxs(kt.motion.g,{variants:{initial:{opacity:y?i.label===y.label?1:g:N?i.color&&r[f.indexOf(i.color)]===N?1:g:q.length!==0?i.label&&q.indexOf(i.label)!==-1?1:.3:1},whileInView:{opacity:y?i.label===y.label?1:g:N?i.color&&r[f.indexOf(i.color)]===N?1:g:q.length!==0?i.label&&q.indexOf(i.label)!==-1?1:g:1,transition:{duration:h.duration}}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}},onMouseEnter:m=>{Mt(i),jt(m.clientY),st(m.clientX),B?.(i)},onMouseMove:m=>{Mt(i),jt(m.clientY),st(m.clientX)},onMouseLeave:()=>{Mt(void 0),st(void 0),jt(void 0),B?.(void 0)},onClick:()=>{(p||C)&&(Wt.isEqual(I,i)&&V?(bt(void 0),p?.(void 0)):(bt(i),p?.(i)))},children:[n.jsxRuntimeExports.jsx(kt.motion.path,{d:wt(i.values)||"",variants:{initial:{d:wt(i.values.map(me))||"",stroke:o.filter(pe).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray,fill:tt?o.filter(xe).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray:"none",strokeWidth:K},whileInView:{d:wt(i.values)||"",transition:{duration:h.duration},stroke:o.filter(he).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray,fill:tt?o.filter(ue).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray:"none",strokeWidth:K}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}},style:{fillOpacity:.1}}),n.jsxRuntimeExports.jsx("g",{children:i.values.map((m,d)=>n.jsxRuntimeExports.jsx("g",{children:z.checkIfNullOrUndefined(m)?null:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[yt?n.jsxRuntimeExports.jsx(kt.motion.circle,{r:4,variants:{initial:{cx:0,cy:0,opacity:0,fill:o.filter(ce).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray},whileInView:{cx:Math.cos(l(d)-Math.PI/2)*M(m),cy:Math.sin(l(d)-Math.PI/2)*M(m),opacity:1,transition:{duration:h.duration},fill:o.filter(le).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}}}):null,gt?n.jsxRuntimeExports.jsx(kt.motion.text,{style:{...u?.graphObjectValues||{}},dy:Math.sin(l(d)-Math.PI/2)<0?10:(Math.sin(l(d)-Math.PI/2)<1e-5,0),className:n.mo("graph-value text-xs font-bold",a?.graphObjectValues),variants:{initial:{opacity:0,x:Math.cos(l(d)-Math.PI/2)*(M(m)+6),y:Math.sin(l(d)-Math.PI/2)*(M(m)+6),fill:r[x],textAnchor:Math.cos(l(d)-Math.PI/2)<0?"end":Math.cos(l(d)-Math.PI/2)<1e-5?"middle":"start"},whileInView:{opacity:1,x:Math.cos(l(d)-Math.PI/2)*(M(m)+6),y:Math.sin(l(d)-Math.PI/2)*(M(m)+6),fill:r[x],textAnchor:Math.cos(l(d)-Math.PI/2)<0?"end":Math.cos(l(d)-Math.PI/2)<1e-5?"middle":"start",transition:{duration:h.duration}}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}},children:St.numberFormattingFunction(m,void 0,et,void 0,void 0,it)}):null]})},d))})]},i.label||x)),t[8]=h.duration,t[9]=J,t[10]=a?.graphObjectValues,t[11]=a?.xAxis?.axis,t[12]=a?.xAxis?.gridLines,t[13]=a?.xAxis?.labels,t[14]=f,t[15]=vt,t[16]=j,t[17]=o,t[18]=C,t[19]=g,t[20]=tt,t[21]=q,t[22]=D,t[23]=r,t[24]=it,t[25]=L.left,t[26]=L.top,t[27]=A,t[28]=b,t[29]=I,t[30]=y,t[31]=_t,t[32]=p,t[33]=B,t[34]=et,t[35]=c,t[36]=v,t[37]=V,t[38]=N,t[39]=yt,t[40]=gt,t[41]=K,t[42]=u?.graphObjectValues,t[43]=u?.xAxis?.axis,t[44]=u?.xAxis?.gridLines,t[45]=u?.xAxis?.labels,t[46]=T,t[47]=$,t[48]=w,t[49]=F,t[50]=G,t[51]=U,t[52]=k,t[53]=O,t[54]=s,t[55]=P,t[56]=at,t[57]=H,t[58]=lt,t[59]=ct}else T=t[46],$=t[47],w=t[48],F=t[49],G=t[50],U=t[51],k=t[52],O=t[53],s=t[54],P=t[55],at=t[56],H=t[57],lt=t[58],ct=t[59];let ut;t[68]!==T||t[69]!==k?(ut=n.jsxRuntimeExports.jsx(T,{children:k}),t[68]=T,t[69]=k,t[70]=ut):ut=t[70];let ht;t[71]!==ut||t[72]!==O||t[73]!==s||t[74]!==P?(ht=n.jsxRuntimeExports.jsxs("g",{transform:O,children:[s,P,ut]}),t[71]=ut,t[72]=O,t[73]=s,t[74]=P,t[75]=ht):ht=t[75];let xt;t[76]!==j?(xt=j.filter(ae).map(re),t[76]=j,t[77]=xt):xt=t[77];let pt;t[78]!==ht||t[79]!==xt||t[80]!==at||t[81]!==H?(pt=n.jsxRuntimeExports.jsxs("g",{transform:at,children:[H,ht,xt]}),t[78]=ht,t[79]=xt,t[80]=at,t[81]=H,t[82]=pt):pt=t[82];let mt;t[83]!==$||t[84]!==w||t[85]!==F||t[86]!==G||t[87]!==U||t[88]!==pt||t[89]!==lt||t[90]!==ct?(mt=n.jsxRuntimeExports.jsx($,{width:lt,height:ct,viewBox:w,direction:F,ref:G,className:U,children:pt}),t[83]=$,t[84]=w,t[85]=F,t[86]=G,t[87]=U,t[88]=pt,t[89]=lt,t[90]=ct,t[91]=mt):mt=t[91];let dt;t[92]!==a?.tooltip||t[93]!==ot||t[94]!==rt||t[95]!==y||t[96]!==u?.tooltip||t[97]!==W?(dt=y&&W&&ot&&rt?n.jsxRuntimeExports.jsx(Bt.Tooltip,{data:y,body:W,xPos:ot,yPos:rt,backgroundStyle:u?.tooltip,className:a?.tooltip}):null,t[92]=a?.tooltip,t[93]=ot,t[94]=rt,t[95]=y,t[96]=u?.tooltip,t[97]=W,t[98]=dt):dt=t[98];let ft;t[99]!==a?.modal||t[100]!==C||t[101]!==I?(ft=C&&I!==void 0?n.jsxRuntimeExports.jsx(Xt.DetailsModal,{body:C,data:I,setData:bt,className:a?.modal}):null,t[99]=a?.modal,t[100]=C,t[101]=I,t[102]=ft):ft=t[102];let Ct;return t[103]!==mt||t[104]!==dt||t[105]!==ft?(Ct=n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[mt,dt,ft]}),t[103]=mt,t[104]=dt,t[105]=ft,t[106]=Ct):Ct=t[106],Ct}function re(e){return e.layer}function ae(e){return e.position==="after"}function le(e){return e.color}function ce(e){return e.color}function ue(e){return e.color}function he(e){return e.color}function xe(e){return e.color}function pe(e){return e.color}function me(e){return 0}function de(e){return e.layer}function fe(e){return e.position==="before"}function ge(e){return Math.min(...e.values.filter(ye))}function ye(e){return!z.checkIfNullOrUndefined(e)}function _e(e){return Math.min(...e.values.filter(ve))}function ve(e){return!z.checkIfNullOrUndefined(e)}function Me(e){return Math.max(...e.values.filter(be))}function be(e){return!z.checkIfNullOrUndefined(e)}function je(e){return Math.max(...e.values.filter(ke))}function ke(e){return!z.checkIfNullOrUndefined(e)}function Ee(e){const{graphTitle:t,colors:o,sources:c,graphDescription:r,footNote:W,radius:B,data:p,showColorScale:f=!0,padding:C,backgroundColor:u=!1,tooltip:a,onSeriesMouseOver:N,graphID:J,onSeriesMouseClick:K,topMargin:gt=75,bottomMargin:yt=75,leftMargin:Q=75,rightMargin:Z=75,graphDownload:X=!1,dataDownload:Y=!1,colorDomain:Et,language:_t="en",theme:b="light",highlightedLines:A=[],width:V,height:tt,minHeight:q=0,strokeWidth:h=2,relativeHeight:g,ariaLabel:et,colorLegendTitle:j,detailsOnClick:it,styles:R,classNames:_,showNAColor:D=!0,axisLabels:vt,showDots:nt=!0,showValues:L=!1,curveType:v="curve",noOfTicks:y=5,minValue:Mt,maxValue:I,fillShape:bt=!1,resetSelectionOnDoubleClick:ot=!0,animate:st=!1,dimmedOpacity:rt=.3,precision:jt=2,customLayers:T=[],locale:$="en"}=e,[w,F]=E.useState(0),[G,U]=E.useState(void 0),k=E.useRef(null),O=E.useRef(null);return E.useEffect(()=>{const s=new ResizeObserver(P=>{F((Math.min(P[0].target.clientWidth||620,P[0].target.clientHeight||480,B||1/0)||420)/2)});return k.current&&s.observe(k.current),()=>s.disconnect()},[B]),n.jsxRuntimeExports.jsxs(Vt.GraphContainer,{className:_?.graphContainer,style:R?.graphContainer,id:J,ref:O,"aria-label":et,backgroundColor:u,theme:b,language:_t,minHeight:q,width:V,height:tt,relativeHeight:g,padding:C,children:[t||r||X||Y?n.jsxRuntimeExports.jsx(Kt.GraphHeader,{styles:{title:R?.title,description:R?.description},classNames:{title:_?.title,description:_?.description},graphTitle:t,graphDescription:r,width:V,graphDownload:X?O:void 0,dataDownload:Y?p.map(s=>s.data).filter(s=>s!==void 0).length>0?p.map(s=>s.data).filter(s=>s!==void 0):p.filter(s=>s!==void 0):null}):null,f&&p.filter(s=>s.color).length!==0&&p.length>0?n.jsxRuntimeExports.jsx(Zt.ColorLegendWithMouseOver,{width:V,colorLegendTitle:j,colors:o||S.Colors[b].categoricalColors.colors,colorDomain:Et||At.uniqBy(p,"color",!0),setSelectedColor:U,showNAColor:D,className:_?.colorLegend,isCenter:!0}):null,n.jsxRuntimeExports.jsxs(Vt.GraphArea,{ref:k,children:[p.length===0&&n.jsxRuntimeExports.jsx(Qt.EmptyState,{}),w&&p.length>0?n.jsxRuntimeExports.jsx(se,{data:p,lineColors:p.filter(s=>s.color).length===0?o?[o]:[S.Colors.primaryColors["blue-600"]]:o||S.Colors[b].categoricalColors.colors,radius:w,tooltip:a,colorDomain:Et||At.uniqBy(p,"color",!0),onSeriesMouseOver:N,onSeriesMouseClick:K,styles:R,detailsOnClick:it,selectedColor:G,axisLabels:vt,strokeWidth:h,showValues:L,showDots:nt,topMargin:gt,bottomMargin:yt,leftMargin:Q,rightMargin:Z,curveType:v,noOfTicks:y,minValue:Mt,maxValue:I,fillShape:bt,highlightedLines:A,resetSelectionOnDoubleClick:ot,animate:st===!0?{duration:.5,once:!0,amount:.5}:st||{duration:0,once:!0,amount:0},dimmedOpacity:rt,precision:jt,customLayers:T,locale:$}):null]}),c||W?n.jsxRuntimeExports.jsx(Jt.GraphFooter,{styles:{footnote:R?.footnote,source:R?.source},classNames:{footnote:_?.footnote,source:_?.source},sources:c,footNote:W,width:V}):null]})}exports.RadarChart=Ee;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index-CHPV5EwG-D4pAp7u0.cjs"),E=require("react"),Wt=require("./index-DQA8q5sC.cjs"),Bt=require("./Tooltip-Hr46paWP.cjs"),S=require("./Colors.cjs"),St=require("./numberFormattingFunction-Cn9R7CM9.cjs"),z=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),Xt=require("./DetailsModal-jmmKRMRM.cjs"),Nt=require("./linear-CgUCbw9F.cjs"),qt=require("./line-DaEMhXmx.cjs"),kt=require("./proxy-CqH8m8IQ.cjs"),Yt=require("./use-in-view-dnRv_qqF.cjs"),zt=require("./index-FXfr51ZM.cjs"),Jt=require("./GraphFooter.cjs"),Kt=require("./GraphHeader.cjs"),Qt=require("./EmptyState-CFmiFPHz.cjs"),Zt=require("./ColorLegendWithMouseOver.cjs"),At=require("./uniqBy-O05lp2S5.cjs"),Vt=require("./GraphContainer-Cul9b74X.cjs");var te=Lt(qt.curveLinear);function Dt(e){this._curve=e}Dt.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),t*-Math.cos(e))}};function Lt(e){function t(o){return new Dt(e(o))}return t._curve=e,t}function ee(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(o){return arguments.length?t(Lt(o)):t()._curve},e}function ie(){return ee(qt.line().curve(te))}function Ot(){}function Pt(e,t,o){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-o),e._x2,e._y2)}function Tt(e,t){this._context=e,this._k=(1-t)/6}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Pt(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Pt(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};(function e(t){function o(c){return new Tt(c,t)}return o.tension=function(c){return e(+c)},o})(0);function $t(e,t){this._context=e,this._k=(1-t)/6}$t.prototype={areaStart:Ot,areaEnd:Ot,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Pt(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const ne=(function e(t){function o(c){return new $t(c,t)}return o.tension=function(c){return e(+c)},o})(0);function Ft(e){this._context=e}Ft.prototype={areaStart:Ot,areaEnd:Ot,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function oe(e){return new Ft(e)}function se(e){const t=n.compilerRuntimeExports.c(107),{data:o,radius:c,lineColors:r,tooltip:W,onSeriesMouseOver:B,onSeriesMouseClick:p,colorDomain:f,detailsOnClick:C,styles:u,classNames:a,selectedColor:N,axisLabels:J,strokeWidth:K,showValues:gt,showDots:yt,rightMargin:Q,topMargin:Z,bottomMargin:X,leftMargin:Y,curveType:Et,noOfTicks:_t,minValue:b,maxValue:A,resetSelectionOnDoubleClick:V,fillShape:tt,highlightedLines:q,animate:h,dimmedOpacity:g,precision:et,customLayers:j,locale:it}=e,R=E.useRef(null);let _;t[0]!==h.amount||t[1]!==h.once?(_={once:h.once,amount:h.amount},t[0]=h.amount,t[1]=h.once,t[2]=_):_=t[2];const D=Yt.useInView(R,_),vt=Et==="linear"?oe:ne;let nt;t[3]!==X||t[4]!==Y||t[5]!==Q||t[6]!==Z?(nt={top:Z,bottom:X,left:Y,right:Q},t[3]=X,t[4]=Y,t[5]=Q,t[6]=Z,t[7]=nt):nt=t[7];const L=nt,v=Math.min((2*c-Y-Q)/2,(2*c-Z-X)/2),[y,Mt]=E.useState(void 0),[I,bt]=E.useState(void 0),[ot,st]=E.useState(void 0),[rt,jt]=E.useState(void 0);let T,$,w,F,G,U,k,O,s,P,at,H,lt,ct;if(t[8]!==h.duration||t[9]!==J||t[10]!==a?.graphObjectValues||t[11]!==a?.xAxis?.axis||t[12]!==a?.xAxis?.gridLines||t[13]!==a?.xAxis?.labels||t[14]!==f||t[15]!==vt||t[16]!==j||t[17]!==o||t[18]!==C||t[19]!==g||t[20]!==tt||t[21]!==q||t[22]!==D||t[23]!==r||t[24]!==it||t[25]!==L.left||t[26]!==L.top||t[27]!==A||t[28]!==b||t[29]!==I||t[30]!==y||t[31]!==_t||t[32]!==p||t[33]!==B||t[34]!==et||t[35]!==c||t[36]!==v||t[37]!==V||t[38]!==N||t[39]!==yt||t[40]!==gt||t[41]!==K||t[42]!==u?.graphObjectValues||t[43]!==u?.xAxis?.axis||t[44]!==u?.xAxis?.gridLines||t[45]!==u?.xAxis?.labels){const l=Nt.linear().domain([0,o[0].values.length]).range([0,2*Math.PI]);let Rt;t[60]!==o||t[61]!==A?(Rt=z.checkIfNullOrUndefined(A)?Math.max(...o.map(je))<0?0:Math.max(...o.map(Me)):A,t[60]=o,t[61]=A,t[62]=Rt):Rt=t[62];const Gt=Rt;let It;t[63]!==o||t[64]!==b?(It=z.checkIfNullOrUndefined(b)?Math.min(...o.map(_e))>=0?0:Math.min(...o.map(ge)):b,t[63]=o,t[64]=b,t[65]=It):It=t[65];const Ut=It,M=Nt.linear().domain([Ut,Gt]).range([0,v]).nice(),Ht=M.ticks(_t),wt=ie().radius(i=>M(i)).angle((i,x)=>l(x)).curve(vt);$=kt.motion.svg,lt=`${c*2}px`,ct=`${c*2}px`,w=`0 0 ${c*2} ${c*2}`,F="ltr",G=R,U="mx-auto",at=`translate(${L.left},${L.top})`,t[66]!==j?(H=j.filter(fe).map(de),t[66]=j,t[67]=H):H=t[67],O=`translate(${v},${v})`,s=J.map((i,x)=>n.jsxRuntimeExports.jsxs("g",{children:[n.jsxRuntimeExports.jsx("line",{x1:0,y1:0,x2:Math.cos(l(x)-Math.PI/2)*v,y2:Math.sin(l(x)-Math.PI/2)*v,className:n.mo("stroke-1 stroke-primary-gray-500 dark:stroke-primary-gray-550",a?.xAxis?.axis),style:u?.xAxis?.axis},x),n.jsxRuntimeExports.jsx("text",{x:Math.cos(l(x)-Math.PI/2)*(v+6),y:Math.sin(l(x)-Math.PI/2)*(v+6),style:{textAnchor:Math.cos(l(x)-Math.PI/2)<0?"end":Math.cos(l(x)-Math.PI/2)<1e-5?"middle":"start",...u?.xAxis?.labels||""},dy:Math.sin(l(x)-Math.PI/2)<0?0:Math.sin(l(x)-Math.PI/2)<1e-5?5:10,className:n.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs",a?.xAxis?.labels),children:i})]},x)),P=Ht.map((i,x)=>n.jsxRuntimeExports.jsxs("g",{children:[n.jsxRuntimeExports.jsx("path",{d:wt(Array(J.length).fill(i))||"",className:n.mo("stroke-primary-gray-500 dark:stroke-primary-gray-550",a?.xAxis?.gridLines),style:{...u?.xAxis?.gridLines,fill:"none"}}),n.jsxRuntimeExports.jsx("foreignObject",{x:-25,y:Math.sin(-Math.PI/2)*M(i)>-1e-4?Math.sin(-Math.PI/2)*M(i)-7:Math.sin(-Math.PI/2)*M(i)-5,width:50,height:12,children:n.jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:n.jsxRuntimeExports.jsx("p",{className:n.mo("fill-primary-gray-500 dark:fill-primary-gray-550 text-xs m-0 py-0 px-1.5 text-center leading-none bg-primary-white dark:bg-primary-gray-700",a?.xAxis?.labels),style:u?.xAxis?.labels,children:St.numberFormattingFunction(i,void 0,et,void 0,void 0,it)})})})]},x)),T=zt.AnimatePresence,k=o.map((i,x)=>n.jsxRuntimeExports.jsxs(kt.motion.g,{variants:{initial:{opacity:y?i.label===y.label?1:g:N?i.color&&r[f.indexOf(i.color)]===N?1:g:q?i.label&&q.indexOf(i.label)!==-1?1:.3:1},whileInView:{opacity:y?i.label===y.label?1:g:N?i.color&&r[f.indexOf(i.color)]===N?1:g:q?i.label&&q.indexOf(i.label)!==-1?1:g:1,transition:{duration:h.duration}}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}},onMouseEnter:m=>{Mt(i),jt(m.clientY),st(m.clientX),B?.(i)},onMouseMove:m=>{Mt(i),jt(m.clientY),st(m.clientX)},onMouseLeave:()=>{Mt(void 0),st(void 0),jt(void 0),B?.(void 0)},onClick:()=>{(p||C)&&(Wt.isEqual(I,i)&&V?(bt(void 0),p?.(void 0)):(bt(i),p?.(i)))},children:[n.jsxRuntimeExports.jsx(kt.motion.path,{d:wt(i.values)||"",variants:{initial:{d:wt(i.values.map(me))||"",stroke:o.filter(pe).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray,fill:tt?o.filter(xe).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray:"none",strokeWidth:K},whileInView:{d:wt(i.values)||"",transition:{duration:h.duration},stroke:o.filter(he).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray,fill:tt?o.filter(ue).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray:"none",strokeWidth:K}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}},style:{fillOpacity:.1}}),n.jsxRuntimeExports.jsx("g",{children:i.values.map((m,d)=>n.jsxRuntimeExports.jsx("g",{children:z.checkIfNullOrUndefined(m)?null:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[yt?n.jsxRuntimeExports.jsx(kt.motion.circle,{r:4,variants:{initial:{cx:0,cy:0,opacity:0,fill:o.filter(ce).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray},whileInView:{cx:Math.cos(l(d)-Math.PI/2)*M(m),cy:Math.sin(l(d)-Math.PI/2)*M(m),opacity:1,transition:{duration:h.duration},fill:o.filter(le).length===0?r[0]:i.color?r[f.indexOf(i.color)]:S.Colors.gray}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}}}):null,gt?n.jsxRuntimeExports.jsx(kt.motion.text,{style:{...u?.graphObjectValues||{}},dy:Math.sin(l(d)-Math.PI/2)<0?10:(Math.sin(l(d)-Math.PI/2)<1e-5,0),className:n.mo("graph-value text-xs font-bold",a?.graphObjectValues),variants:{initial:{opacity:0,x:Math.cos(l(d)-Math.PI/2)*(M(m)+6),y:Math.sin(l(d)-Math.PI/2)*(M(m)+6),fill:r[x],textAnchor:Math.cos(l(d)-Math.PI/2)<0?"end":Math.cos(l(d)-Math.PI/2)<1e-5?"middle":"start"},whileInView:{opacity:1,x:Math.cos(l(d)-Math.PI/2)*(M(m)+6),y:Math.sin(l(d)-Math.PI/2)*(M(m)+6),fill:r[x],textAnchor:Math.cos(l(d)-Math.PI/2)<0?"end":Math.cos(l(d)-Math.PI/2)<1e-5?"middle":"start",transition:{duration:h.duration}}},initial:"initial",animate:D?"whileInView":"initial",exit:{opacity:0,transition:{duration:h.duration}},children:St.numberFormattingFunction(m,void 0,et,void 0,void 0,it)}):null]})},d))})]},i.label||x)),t[8]=h.duration,t[9]=J,t[10]=a?.graphObjectValues,t[11]=a?.xAxis?.axis,t[12]=a?.xAxis?.gridLines,t[13]=a?.xAxis?.labels,t[14]=f,t[15]=vt,t[16]=j,t[17]=o,t[18]=C,t[19]=g,t[20]=tt,t[21]=q,t[22]=D,t[23]=r,t[24]=it,t[25]=L.left,t[26]=L.top,t[27]=A,t[28]=b,t[29]=I,t[30]=y,t[31]=_t,t[32]=p,t[33]=B,t[34]=et,t[35]=c,t[36]=v,t[37]=V,t[38]=N,t[39]=yt,t[40]=gt,t[41]=K,t[42]=u?.graphObjectValues,t[43]=u?.xAxis?.axis,t[44]=u?.xAxis?.gridLines,t[45]=u?.xAxis?.labels,t[46]=T,t[47]=$,t[48]=w,t[49]=F,t[50]=G,t[51]=U,t[52]=k,t[53]=O,t[54]=s,t[55]=P,t[56]=at,t[57]=H,t[58]=lt,t[59]=ct}else T=t[46],$=t[47],w=t[48],F=t[49],G=t[50],U=t[51],k=t[52],O=t[53],s=t[54],P=t[55],at=t[56],H=t[57],lt=t[58],ct=t[59];let ut;t[68]!==T||t[69]!==k?(ut=n.jsxRuntimeExports.jsx(T,{children:k}),t[68]=T,t[69]=k,t[70]=ut):ut=t[70];let ht;t[71]!==ut||t[72]!==O||t[73]!==s||t[74]!==P?(ht=n.jsxRuntimeExports.jsxs("g",{transform:O,children:[s,P,ut]}),t[71]=ut,t[72]=O,t[73]=s,t[74]=P,t[75]=ht):ht=t[75];let xt;t[76]!==j?(xt=j.filter(ae).map(re),t[76]=j,t[77]=xt):xt=t[77];let pt;t[78]!==ht||t[79]!==xt||t[80]!==at||t[81]!==H?(pt=n.jsxRuntimeExports.jsxs("g",{transform:at,children:[H,ht,xt]}),t[78]=ht,t[79]=xt,t[80]=at,t[81]=H,t[82]=pt):pt=t[82];let mt;t[83]!==$||t[84]!==w||t[85]!==F||t[86]!==G||t[87]!==U||t[88]!==pt||t[89]!==lt||t[90]!==ct?(mt=n.jsxRuntimeExports.jsx($,{width:lt,height:ct,viewBox:w,direction:F,ref:G,className:U,children:pt}),t[83]=$,t[84]=w,t[85]=F,t[86]=G,t[87]=U,t[88]=pt,t[89]=lt,t[90]=ct,t[91]=mt):mt=t[91];let dt;t[92]!==a?.tooltip||t[93]!==ot||t[94]!==rt||t[95]!==y||t[96]!==u?.tooltip||t[97]!==W?(dt=y&&W&&ot&&rt?n.jsxRuntimeExports.jsx(Bt.Tooltip,{data:y,body:W,xPos:ot,yPos:rt,backgroundStyle:u?.tooltip,className:a?.tooltip}):null,t[92]=a?.tooltip,t[93]=ot,t[94]=rt,t[95]=y,t[96]=u?.tooltip,t[97]=W,t[98]=dt):dt=t[98];let ft;t[99]!==a?.modal||t[100]!==C||t[101]!==I?(ft=C&&I!==void 0?n.jsxRuntimeExports.jsx(Xt.DetailsModal,{body:C,data:I,setData:bt,className:a?.modal}):null,t[99]=a?.modal,t[100]=C,t[101]=I,t[102]=ft):ft=t[102];let Ct;return t[103]!==mt||t[104]!==dt||t[105]!==ft?(Ct=n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[mt,dt,ft]}),t[103]=mt,t[104]=dt,t[105]=ft,t[106]=Ct):Ct=t[106],Ct}function re(e){return e.layer}function ae(e){return e.position==="after"}function le(e){return e.color}function ce(e){return e.color}function ue(e){return e.color}function he(e){return e.color}function xe(e){return e.color}function pe(e){return e.color}function me(e){return 0}function de(e){return e.layer}function fe(e){return e.position==="before"}function ge(e){return Math.min(...e.values.filter(ye))}function ye(e){return!z.checkIfNullOrUndefined(e)}function _e(e){return Math.min(...e.values.filter(ve))}function ve(e){return!z.checkIfNullOrUndefined(e)}function Me(e){return Math.max(...e.values.filter(be))}function be(e){return!z.checkIfNullOrUndefined(e)}function je(e){return Math.max(...e.values.filter(ke))}function ke(e){return!z.checkIfNullOrUndefined(e)}function Ee(e){const{graphTitle:t,colors:o,sources:c,graphDescription:r,footNote:W,radius:B,data:p,showColorScale:f=!0,padding:C,backgroundColor:u=!1,tooltip:a,onSeriesMouseOver:N,graphID:J,onSeriesMouseClick:K,topMargin:gt=75,bottomMargin:yt=75,leftMargin:Q=75,rightMargin:Z=75,graphDownload:X=!1,dataDownload:Y=!1,colorDomain:Et,language:_t="en",theme:b="light",highlightedLines:A,width:V,height:tt,minHeight:q=0,strokeWidth:h=2,relativeHeight:g,ariaLabel:et,colorLegendTitle:j,detailsOnClick:it,styles:R,classNames:_,showNAColor:D=!0,axisLabels:vt,showDots:nt=!0,showValues:L=!1,curveType:v="curve",noOfTicks:y=5,minValue:Mt,maxValue:I,fillShape:bt=!1,resetSelectionOnDoubleClick:ot=!0,animate:st=!1,dimmedOpacity:rt=.3,precision:jt=2,customLayers:T=[],locale:$="en"}=e,[w,F]=E.useState(0),[G,U]=E.useState(void 0),k=E.useRef(null),O=E.useRef(null);return E.useEffect(()=>{const s=new ResizeObserver(P=>{F((Math.min(P[0].target.clientWidth||620,P[0].target.clientHeight||480,B||1/0)||420)/2)});return k.current&&s.observe(k.current),()=>s.disconnect()},[B]),n.jsxRuntimeExports.jsxs(Vt.GraphContainer,{className:_?.graphContainer,style:R?.graphContainer,id:J,ref:O,"aria-label":et,backgroundColor:u,theme:b,language:_t,minHeight:q,width:V,height:tt,relativeHeight:g,padding:C,children:[t||r||X||Y?n.jsxRuntimeExports.jsx(Kt.GraphHeader,{styles:{title:R?.title,description:R?.description},classNames:{title:_?.title,description:_?.description},graphTitle:t,graphDescription:r,width:V,graphDownload:X?O:void 0,dataDownload:Y?p.map(s=>s.data).filter(s=>s!==void 0).length>0?p.map(s=>s.data).filter(s=>s!==void 0):p.filter(s=>s!==void 0):null}):null,f&&p.filter(s=>s.color).length!==0&&p.length>0?n.jsxRuntimeExports.jsx(Zt.ColorLegendWithMouseOver,{width:V,colorLegendTitle:j,colors:o||S.Colors[b].categoricalColors.colors,colorDomain:Et||At.uniqBy(p,"color",!0),setSelectedColor:U,showNAColor:D,className:_?.colorLegend,isCenter:!0}):null,n.jsxRuntimeExports.jsxs(Vt.GraphArea,{ref:k,children:[p.length===0&&n.jsxRuntimeExports.jsx(Qt.EmptyState,{}),w&&p.length>0?n.jsxRuntimeExports.jsx(se,{data:p,lineColors:p.filter(s=>s.color).length===0?o?[o]:[S.Colors.primaryColors["blue-600"]]:o||S.Colors[b].categoricalColors.colors,radius:w,tooltip:a,colorDomain:Et||At.uniqBy(p,"color",!0),onSeriesMouseOver:N,onSeriesMouseClick:K,styles:R,detailsOnClick:it,selectedColor:G,axisLabels:vt,strokeWidth:h,showValues:L,showDots:nt,topMargin:gt,bottomMargin:yt,leftMargin:Q,rightMargin:Z,curveType:v,noOfTicks:y,minValue:Mt,maxValue:I,fillShape:bt,highlightedLines:A,resetSelectionOnDoubleClick:ot,animate:st===!0?{duration:.5,once:!0,amount:.5}:st||{duration:0,once:!0,amount:0},dimmedOpacity:rt,precision:jt,customLayers:T,locale:$}):null]}),c||W?n.jsxRuntimeExports.jsx(Jt.GraphFooter,{styles:{footnote:R?.footnote,source:R?.source},classNames:{footnote:_?.footnote,source:_?.source},sources:c,footNote:W,width:V}):null]})}exports.RadarChart=Ee;
|
|
2
2
|
//# sourceMappingURL=RadarChart.cjs.map
|