@undp/data-viz 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.js +957 -957
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.js +45 -47
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.js +76 -56
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.js +157 -157
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.js +185 -185
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.js +2 -4
- package/dist/CirclePackingGraph.js.map +1 -1
- package/dist/Data/barChart.json +70 -0
- package/dist/Data/basic.csv +20 -0
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.js +224 -223
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.js +156 -156
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.js +326 -325
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.cjs.map +1 -1
- package/dist/GeoHubCompareMaps.js +183 -183
- package/dist/GeoHubCompareMaps.js.map +1 -1
- package/dist/{GraphEl-DzRon4cb.js → GraphEl-BZne2JIx.js} +3 -3
- package/dist/{GraphEl-DzRon4cb.js.map → GraphEl-BZne2JIx.js.map} +1 -1
- package/dist/{GraphEl-BkyLYXG5.cjs → GraphEl-D5MUfp45.cjs} +2 -2
- package/dist/{GraphEl-BkyLYXG5.cjs.map → GraphEl-D5MUfp45.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/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.js +133 -132
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.js +52 -50
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js +11 -9
- package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.js +149 -148
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.js +182 -181
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +14 -12
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.js +123 -122
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.js +83 -79
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.js +49 -45
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.js +56 -52
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.js +44 -46
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.js +134 -134
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/getNoOfTicks-C_1CFXv_.cjs +2 -0
- package/dist/getNoOfTicks-C_1CFXv_.cjs.map +1 -0
- package/dist/getNoOfTicks-CpmRjcRF.js +7 -0
- package/dist/getNoOfTicks-CpmRjcRF.js.map +1 -0
- package/dist/index-C6LorfZ-.cjs +2 -0
- package/dist/index-C6LorfZ-.cjs.map +1 -0
- package/dist/index-Ceppbd8C.js +342 -0
- package/dist/index-Ceppbd8C.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/index-DoY3Ga3W.cjs +0 -2
- package/dist/index-DoY3Ga3W.cjs.map +0 -1
- package/dist/index-leTnKT2q.js +0 -329
- package/dist/index-leTnKT2q.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DualAxisLineChart.js","sources":["../src/Components/Graphs/LineCharts/DualAxisLineChart/Graph.tsx","../src/Components/Graphs/LineCharts/DualAxisLineChart/index.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\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 { motion, useInView } from 'motion/react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n DualAxisLineChartDataType,\r\n HighlightAreaSettingsDataType,\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 { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { HighlightArea } from '@/Components/Elements/HighlightArea';\r\n\r\ninterface Props {\r\n data: DualAxisLineChartDataType[];\r\n lineColors: [string, string];\r\n labels: [string, string];\r\n width: number;\r\n height: number;\r\n dateFormat: string;\r\n showValues: boolean;\r\n noOfXTicks: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n highlightAreaSettings: HighlightAreaSettingsDataType[];\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 animate: AnimateDataType;\r\n strokeWidth: number;\r\n showDots: boolean;\r\n noOfYTicks: number;\r\n lineSuffixes: [string, string];\r\n linePrefixes: [string, string];\r\n minDate?: string | number;\r\n maxDate?: string | number;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y1: number;\r\n y2: 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 labels,\r\n sameAxes,\r\n dateFormat,\r\n showValues,\r\n noOfXTicks,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n highlightAreaSettings,\r\n onSeriesMouseOver,\r\n animate,\r\n strokeWidth,\r\n showDots,\r\n noOfYTicks,\r\n lineSuffixes,\r\n linePrefixes,\r\n minDate,\r\n maxDate,\r\n curveType,\r\n styles,\r\n classNames,\r\n precision,\r\n customLayers,\r\n showAxisLabels,\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: leftMargin + 50,\r\n right: rightMargin + 65,\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 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 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 minParam1 =\r\n Math.min(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n const x = scaleTime().domain([minYear, maxYear]).range([0, graphWidth]);\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape1 = line<FormattedDataType>()\r\n .defined(d => !checkIfNullOrUndefined(d.y1))\r\n .x(d => x(d.date))\r\n .y(d => y1(d.y1))\r\n .curve(curve);\r\n\r\n const lineShape2 = line<FormattedDataType>()\r\n .defined(d => !checkIfNullOrUndefined(d.y2))\r\n .x(d => x(d.date))\r\n .y(d => y2(d.y2))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfYTicks);\r\n const y2Ticks = y2.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 onSeriesMouseOver?.(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n };\r\n const mouseout = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n };\r\n select(MouseoverRectRef.current).on('mousemove', mousemove).on('mouseout', mouseout);\r\n }, [x, dataFormatted, onSeriesMouseOver]);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <HighlightArea\r\n areaSettings={highlightAreaSettingsFormatted}\r\n width={graphWidth}\r\n height={graphHeight}\r\n scale={x}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: lineColors[0],\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: lineColors[0],\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, 'NA', precision, linePrefixes[0], lineSuffixes[0])}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColors[0], ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColors[0], ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={labels[0].length > 100 ? `${labels[0].substring(0, 100)}...` : labels[0]}\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColors[1],\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColors[1],\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, 'NA', precision, linePrefixes[1], lineSuffixes[1])}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColors[1], ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColors[1], ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={labels[1].length > 100 ? `${labels[1].substring(0, 100)}...` : labels[1]}\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n <Axis\r\n y1={graphHeight}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\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 labelType='primary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n </g>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g>\r\n <motion.path\r\n style={{\r\n stroke: lineColors[0],\r\n strokeWidth,\r\n fill: 'none',\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d:\r\n lineShape1(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y1),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d:\r\n lineShape1(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y1),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n <motion.path\r\n d={\r\n lineShape2(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y2),\r\n ),\r\n ) || ''\r\n }\r\n style={{\r\n stroke: lineColors[1],\r\n strokeWidth,\r\n fill: 'none',\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d:\r\n lineShape2(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y2),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d:\r\n lineShape2(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y2),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {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 <g>\r\n {dataFormatted.map((d, i) => (\r\n <motion.g key={i}>\r\n {!checkIfNullOrUndefined(d.y1) ? (\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 cx: x(d.date),\r\n cy: y1(d.y1 as number),\r\n fill: lineColors[0],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[0],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n cx: x(d.date),\r\n cy: y1(d.y1 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={\r\n checkIfNullOrUndefined(d.y2)\r\n ? -8\r\n : (d.y2 as number) < (d.y1 as number)\r\n ? -8\r\n : '1em'\r\n }\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-1 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 x: x(d.date),\r\n y: y2(d.y1 as number),\r\n fill: lineColors[0],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(d.date),\r\n fill: lineColors[0],\r\n y: y2(d.y1 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 d.y1,\r\n 'NA',\r\n precision,\r\n linePrefixes[0],\r\n lineSuffixes[0],\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n {!checkIfNullOrUndefined(d.y2) ? (\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 cx: x(d.date),\r\n cy: y2(d.y2 as number),\r\n fill: lineColors[1],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n fill: lineColors[1],\r\n cx: x(d.date),\r\n cy: y2(d.y2 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={\r\n checkIfNullOrUndefined(d.y1)\r\n ? -8\r\n : (d.y1 as number) < (d.y2 as number)\r\n ? -8\r\n : '1em'\r\n }\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-2 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 x: x(d.date),\r\n y: y2(d.y2 as number),\r\n fill: lineColors[1],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(d.date),\r\n y: y2(d.y2 as number),\r\n fill: lineColors[1],\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 d.y2,\r\n 'NA',\r\n precision,\r\n linePrefixes[1],\r\n lineSuffixes[1],\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n </motion.g>\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 { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n DualAxisLineChartDataType,\r\n Languages,\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 { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: DualAxisLineChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for the 2 lines */\r\n lineColors?: [string, string];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values of the lines */\r\n linePrefixes?: [string, string];\r\n /** Suffix for values of the lines */\r\n lineSuffixes?: [string, string];\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 /** 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 /** Enables same axis for the 2 lines */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Labels for the lines */\r\n labels: [string, string];\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 /** Highlighted area(square) on the chart */\r\n highlightAreaSettings?: HighlightAreaSettingsDataType[];\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function DualAxisLineChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n noOfXTicks = 10,\r\n dateFormat = 'yyyy',\r\n showValues = false,\r\n padding,\r\n lineColors = [\r\n Colors.light.categoricalColors.colors[0],\r\n Colors.light.categoricalColors.colors[1],\r\n ],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n labels,\r\n lineSuffixes = ['', ''],\r\n linePrefixes = ['', ''],\r\n tooltip,\r\n highlightAreaSettings = [],\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n animate = false,\r\n strokeWidth = 2,\r\n showDots = true,\r\n language = 'en',\r\n showColorScale = true,\r\n minHeight = 0,\r\n colorLegendTitle,\r\n theme = 'light',\r\n ariaLabel,\r\n noOfYTicks = 5,\r\n maxDate,\r\n minDate,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n precision = 2,\r\n customLayers = [],\r\n showAxisLabels = true,\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 {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {!showColorScale ? null : (\r\n <ColorLegend\r\n colorDomain={labels}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={lineColors}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColors={lineColors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n dateFormat={dateFormat}\r\n showValues={showValues}\r\n noOfXTicks={noOfXTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n labels={labels}\r\n highlightAreaSettings={highlightAreaSettings}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\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 strokeWidth={strokeWidth}\r\n showDots={showDots}\r\n noOfYTicks={noOfYTicks}\r\n lineSuffixes={lineSuffixes}\r\n linePrefixes={linePrefixes}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n curveType={curveType}\r\n styles={styles}\r\n classNames={classNames}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showAxisLabels={showAxisLabels}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","lineColors","labels","sameAxes","dateFormat","showValues","noOfXTicks","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","highlightAreaSettings","onSeriesMouseOver","animate","strokeWidth","showDots","noOfYTicks","lineSuffixes","linePrefixes","minDate","maxDate","curveType","styles","classNames","precision","customLayers","showAxisLabels","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","t5","top","bottom","left","right","margin","MouseoverRectRef","t6","d","date","parse","Date","dataFormatted","orderBy","map","t7","t8","d_0","coordinates","highlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam1","Math","min","_temp","filter","_temp2","Infinity","_temp3","_temp4","_temp5","_temp6","minParam2","_temp7","_temp8","_temp9","_temp0","_temp1","_temp10","maxParam1","max","_temp11","_temp12","_temp13","_temp14","maxParam2","_temp15","_temp16","_temp17","_temp18","minParam","maxParam","x","scaleTime","domain","range","y1","scaleLinear","nice","y2","lineShape1","line","defined","_temp19","d_22","y","d_23","lineShape2","_temp20","d_25","d_26","y1Ticks","ticks","y2Ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp21","invert","pointer","clientY","clientX","mouseout","select","current","on","jsx","HighlightArea","t9","xAxis","axis","t10","t11","t12","stroke","t13","Axis","t14","yAxis","title","AxisTitle","fill","substring","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","d_30","format","t30","t31","d_31","t32","gridLines","t33","t34","t35","t36","cn","t37","t38","t39","t40","_temp22","_temp23","t41","t42","opacity","transition","t43","t44","t45","d_34","i_1","jsxs","motion","checkIfNullOrUndefined","Fragment","initial","cx","cy","whileInView","delay","textAnchor","graphObjectValues","numberFormattingFunction","i","t46","t47","_temp29","_temp30","t48","Symbol","for","pointerEvents","t49","t50","Tooltip","d_28","d_29","i_0","XTicksAndGridLines","pathLength","_temp24","_temp25","_temp26","_temp27","_temp28","mouseOverLine","d_36","layer","d_35","position","el_3","el","el_2","el_1","el_0","d_33","d_32","d_27","d_24","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","DualAxisLineChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","showColorScale","minHeight","colorLegendTitle","theme","ariaLabel","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","EmptyState","ColorLegend","colorLegend","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DualAxisLineChart.js","sources":["../src/Components/Graphs/LineCharts/DualAxisLineChart/Graph.tsx","../src/Components/Graphs/LineCharts/DualAxisLineChart/index.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n line,\r\n curveMonotoneX,\r\n curveLinear,\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 { motion, useInView } from 'motion/react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CurveTypes,\r\n CustomLayerDataType,\r\n DualAxisLineChartDataType,\r\n HighlightAreaSettingsDataType,\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 { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { AxisTitle } from '@/Components/Elements/Axes/AxisTitle';\r\nimport { HighlightArea } from '@/Components/Elements/HighlightArea';\r\n\r\ninterface Props {\r\n data: DualAxisLineChartDataType[];\r\n lineColors: [string, string];\r\n labels: [string, string];\r\n width: number;\r\n height: number;\r\n dateFormat: string;\r\n showValues: boolean;\r\n noOfXTicks: number;\r\n rightMargin: number;\r\n leftMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n sameAxes: boolean;\r\n highlightAreaSettings: HighlightAreaSettingsDataType[];\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 animate: AnimateDataType;\r\n strokeWidth: number;\r\n showDots: boolean;\r\n noOfYTicks: number;\r\n lineSuffixes: [string, string];\r\n linePrefixes: [string, string];\r\n minDate?: string | number;\r\n maxDate?: string | number;\r\n curveType: CurveTypes;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n showAxisLabels: boolean;\r\n}\r\n\r\ninterface FormattedDataType {\r\n y1: number;\r\n y2: 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 labels,\r\n sameAxes,\r\n dateFormat,\r\n showValues,\r\n noOfXTicks,\r\n rightMargin,\r\n leftMargin,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n highlightAreaSettings,\r\n onSeriesMouseOver,\r\n animate,\r\n strokeWidth,\r\n showDots,\r\n noOfYTicks,\r\n lineSuffixes,\r\n linePrefixes,\r\n minDate,\r\n maxDate,\r\n curveType,\r\n styles,\r\n classNames,\r\n precision,\r\n customLayers,\r\n showAxisLabels,\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: leftMargin + 50,\r\n right: rightMargin + 65,\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 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 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 minParam1 =\r\n Math.min(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const minParam2 =\r\n Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) > 0\r\n ? 0\r\n : Math.min(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam1 =\r\n Math.max(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y1).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n const maxParam2 =\r\n Math.max(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null)) !==\r\n Infinity\r\n ? Math.max(...dataFormatted.map(d => d.y2).filter(d => d !== undefined && d !== null))\r\n : 0;\r\n\r\n const minParam = minParam1 < minParam2 ? minParam1 : minParam2;\r\n const maxParam = maxParam1 > maxParam2 ? maxParam1 : maxParam2;\r\n const x = scaleTime().domain([minYear, maxYear]).range([0, graphWidth]);\r\n\r\n const y1 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam1,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam1 > 0 ? maxParam1 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n const y2 = scaleLinear()\r\n .domain([\r\n sameAxes ? minParam : minParam2,\r\n sameAxes ? (maxParam > 0 ? maxParam : 0) : maxParam2 > 0 ? maxParam2 : 0,\r\n ])\r\n .range([graphHeight, 0])\r\n .nice();\r\n\r\n const lineShape1 = line<FormattedDataType>()\r\n .defined(d => !checkIfNullOrUndefined(d.y1))\r\n .x(d => x(d.date))\r\n .y(d => y1(d.y1))\r\n .curve(curve);\r\n\r\n const lineShape2 = line<FormattedDataType>()\r\n .defined(d => !checkIfNullOrUndefined(d.y2))\r\n .x(d => x(d.date))\r\n .y(d => y2(d.y2))\r\n .curve(curve);\r\n const y1Ticks = y1.ticks(noOfYTicks);\r\n const y2Ticks = y2.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 onSeriesMouseOver?.(selectedData || dataFormatted[dataFormatted.length - 1]);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n };\r\n const mouseout = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n };\r\n select(MouseoverRectRef.current).on('mousemove', mousemove).on('mouseout', mouseout);\r\n }, [x, dataFormatted, onSeriesMouseOver]);\r\n\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n <HighlightArea\r\n areaSettings={highlightAreaSettingsFormatted}\r\n width={graphWidth}\r\n height={graphHeight}\r\n scale={x}\r\n animate={animate}\r\n isInView={isInView}\r\n />\r\n <g>\r\n {y1Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y1(d)}\r\n y2={y1(d)}\r\n x1={-15}\r\n x2={-20}\r\n style={{\r\n stroke: lineColors[0],\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={0 - 25}\r\n y={y1(d)}\r\n dy='0.33em'\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n style={{\r\n textAnchor: 'end',\r\n fill: lineColors[0],\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n >\r\n {numberFormattingFunction(d, 'NA', precision, linePrefixes[0], lineSuffixes[0])}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={-15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColors[0], ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={10 - margin.left}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColors[0], ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={labels[0].length > 100 ? `${labels[0].substring(0, 100)}...` : labels[0]}\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n {y2Ticks.map((d, i) => (\r\n <g key={i}>\r\n <line\r\n y1={y2(d)}\r\n y2={y2(d)}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 20}\r\n style={{\r\n stroke: lineColors[1],\r\n strokeWidth: 1,\r\n ...(styles?.yAxis?.gridLines || {}),\r\n }}\r\n className={classNames?.yAxis?.gridLines}\r\n />\r\n <text\r\n x={graphWidth + 25}\r\n y={y2(d)}\r\n dy='0.33em'\r\n dx={-2}\r\n style={{\r\n textAnchor: 'start',\r\n fill: lineColors[1],\r\n ...(styles?.yAxis?.labels || {}),\r\n }}\r\n className={cn('text-xs', classNames?.yAxis?.labels)}\r\n >\r\n {numberFormattingFunction(d, 'NA', precision, linePrefixes[1], lineSuffixes[1])}\r\n </text>\r\n </g>\r\n ))}\r\n <Axis\r\n y1={0}\r\n y2={graphHeight}\r\n x1={graphWidth + 15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: { stroke: lineColors[1], ...(styles?.xAxis?.axis || {}) } }}\r\n />\r\n {showAxisLabels ? (\r\n <AxisTitle\r\n x={graphWidth + margin.right - 15}\r\n y={graphHeight / 2}\r\n style={{ fill: lineColors[1], ...(styles?.yAxis?.title || {}) }}\r\n className={classNames?.yAxis?.title}\r\n text={labels[1].length > 100 ? `${labels[1].substring(0, 100)}...` : labels[1]}\r\n rotate90\r\n />\r\n ) : null}\r\n </g>\r\n <g>\r\n <Axis\r\n y1={graphHeight}\r\n y2={graphHeight}\r\n x1={-15}\r\n x2={graphWidth + 15}\r\n classNames={{ axis: classNames?.xAxis?.axis }}\r\n styles={{ axis: styles?.xAxis?.axis }}\r\n />\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 labelType='primary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n </g>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n <g>\r\n <motion.path\r\n style={{\r\n stroke: lineColors[0],\r\n strokeWidth,\r\n fill: 'none',\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d:\r\n lineShape1(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y1),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d:\r\n lineShape1(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y1),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n <motion.path\r\n d={\r\n lineShape2(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y2),\r\n ),\r\n ) || ''\r\n }\r\n style={{\r\n stroke: lineColors[1],\r\n strokeWidth,\r\n fill: 'none',\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n d:\r\n lineShape2(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y2),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n d:\r\n lineShape2(\r\n dataFormatted.filter(\r\n (el): el is FormattedDataType => !checkIfNullOrUndefined(el.y2),\r\n ),\r\n ) || '',\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n {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 <g>\r\n {dataFormatted.map((d, i) => (\r\n <motion.g key={i}>\r\n {!checkIfNullOrUndefined(d.y1) ? (\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 cx: x(d.date),\r\n cy: y1(d.y1 as number),\r\n fill: lineColors[0],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n fill: lineColors[0],\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n cx: x(d.date),\r\n cy: y1(d.y1 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={\r\n checkIfNullOrUndefined(d.y2)\r\n ? -8\r\n : (d.y2 as number) < (d.y1 as number)\r\n ? -8\r\n : '1em'\r\n }\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-1 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 x: x(d.date),\r\n y: y2(d.y1 as number),\r\n fill: lineColors[0],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(d.date),\r\n fill: lineColors[0],\r\n y: y2(d.y1 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 d.y1,\r\n 'NA',\r\n precision,\r\n linePrefixes[0],\r\n lineSuffixes[0],\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n {!checkIfNullOrUndefined(d.y2) ? (\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 cx: x(d.date),\r\n cy: y2(d.y2 as number),\r\n fill: lineColors[1],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n transition: {\r\n duration: hasAnimatedOnce ? animate.duration : 0.5,\r\n delay: hasAnimatedOnce ? 0 : animate.duration,\r\n },\r\n fill: lineColors[1],\r\n cx: x(d.date),\r\n cy: y2(d.y2 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={\r\n checkIfNullOrUndefined(d.y1)\r\n ? -8\r\n : (d.y1 as number) < (d.y2 as number)\r\n ? -8\r\n : '1em'\r\n }\r\n style={{\r\n textAnchor: 'middle',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n className={cn(\r\n 'graph-value graph-value-line-2 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 x: x(d.date),\r\n y: y2(d.y2 as number),\r\n fill: lineColors[1],\r\n },\r\n whileInView: {\r\n opacity: 1,\r\n x: x(d.date),\r\n y: y2(d.y2 as number),\r\n fill: lineColors[1],\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 d.y2,\r\n 'NA',\r\n precision,\r\n linePrefixes[1],\r\n lineSuffixes[1],\r\n )}\r\n </motion.text>\r\n ) : null}\r\n </>\r\n ) : null}\r\n </motion.g>\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 { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegend } from '@/Components/Elements/ColorLegend';\r\nimport {\r\n DualAxisLineChartDataType,\r\n Languages,\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 { Colors } from '@/Components/ColorPalette';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\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: DualAxisLineChartDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Array of colors for the 2 lines */\r\n lineColors?: [string, string];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values of the lines */\r\n linePrefixes?: [string, string];\r\n /** Suffix for values of the lines */\r\n lineSuffixes?: [string, string];\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 /** 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 /** Enables same axis for the 2 lines */\r\n sameAxes?: boolean;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of labels of the axis. */\r\n showAxisLabels?: boolean;\r\n /** Labels for the lines */\r\n labels: [string, string];\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 /** Highlighted area(square) on the chart */\r\n highlightAreaSettings?: HighlightAreaSettingsDataType[];\r\n /** Curve type for the line */\r\n curveType?: CurveTypes;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\nexport function DualAxisLineChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n noOfXTicks,\r\n dateFormat = 'yyyy',\r\n showValues = false,\r\n padding,\r\n lineColors = [\r\n Colors.light.categoricalColors.colors[0],\r\n Colors.light.categoricalColors.colors[1],\r\n ],\r\n sameAxes = false,\r\n backgroundColor = false,\r\n leftMargin = 80,\r\n rightMargin = 80,\r\n topMargin = 20,\r\n bottomMargin = 25,\r\n labels,\r\n lineSuffixes = ['', ''],\r\n linePrefixes = ['', ''],\r\n tooltip,\r\n highlightAreaSettings = [],\r\n relativeHeight,\r\n onSeriesMouseOver,\r\n graphID,\r\n graphDownload = false,\r\n dataDownload = false,\r\n animate = false,\r\n strokeWidth = 2,\r\n showDots = true,\r\n language = 'en',\r\n showColorScale = true,\r\n minHeight = 0,\r\n colorLegendTitle,\r\n theme = 'light',\r\n ariaLabel,\r\n noOfYTicks = 5,\r\n maxDate,\r\n minDate,\r\n curveType = 'curve',\r\n styles,\r\n classNames,\r\n precision = 2,\r\n customLayers = [],\r\n showAxisLabels = true,\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 {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {!showColorScale ? null : (\r\n <ColorLegend\r\n colorDomain={labels}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={lineColors}\r\n showNAColor={false}\r\n className={classNames?.colorLegend}\r\n />\r\n )}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n data={data}\r\n sameAxes={sameAxes}\r\n lineColors={lineColors}\r\n width={svgWidth}\r\n height={svgHeight}\r\n dateFormat={dateFormat}\r\n showValues={showValues}\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 highlightAreaSettings={highlightAreaSettings}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\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 strokeWidth={strokeWidth}\r\n showDots={showDots}\r\n noOfYTicks={noOfYTicks}\r\n lineSuffixes={lineSuffixes}\r\n linePrefixes={linePrefixes}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n curveType={curveType}\r\n styles={styles}\r\n classNames={classNames}\r\n precision={precision}\r\n customLayers={customLayers}\r\n showAxisLabels={showAxisLabels}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n </>\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["Graph","props","$","_c","data","width","height","lineColors","labels","sameAxes","dateFormat","showValues","noOfXTicks","rightMargin","leftMargin","topMargin","bottomMargin","tooltip","highlightAreaSettings","onSeriesMouseOver","animate","strokeWidth","showDots","noOfYTicks","lineSuffixes","linePrefixes","minDate","maxDate","curveType","styles","classNames","precision","customLayers","showAxisLabels","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","t5","top","bottom","left","right","margin","MouseoverRectRef","t6","d","date","parse","Date","dataFormatted","orderBy","map","t7","t8","d_0","coordinates","highlightAreaSettingsFormatted","graphWidth","graphHeight","minYear","maxYear","length","minParam1","Math","min","_temp","filter","_temp2","Infinity","_temp3","_temp4","_temp5","_temp6","minParam2","_temp7","_temp8","_temp9","_temp0","_temp1","_temp10","maxParam1","max","_temp11","_temp12","_temp13","_temp14","maxParam2","_temp15","_temp16","_temp17","_temp18","minParam","maxParam","x","scaleTime","domain","range","y1","scaleLinear","nice","y2","lineShape1","line","defined","_temp19","d_22","y","d_23","lineShape2","_temp20","d_25","d_26","y1Ticks","ticks","y2Ticks","xTicks","mousemove","event","selectedData","bisectCenter","_temp21","invert","pointer","clientY","clientX","mouseout","select","current","on","jsx","HighlightArea","t9","xAxis","axis","t10","t11","t12","stroke","t13","Axis","t14","yAxis","title","AxisTitle","fill","substring","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","d_30","format","t30","t31","d_31","t32","gridLines","t33","t34","t35","t36","cn","t37","t38","t39","t40","_temp22","_temp23","t41","t42","opacity","transition","t43","t44","t45","d_34","i_1","jsxs","motion","checkIfNullOrUndefined","Fragment","initial","cx","cy","whileInView","delay","textAnchor","graphObjectValues","numberFormattingFunction","i","t46","t47","_temp29","_temp30","t48","Symbol","for","pointerEvents","t49","t50","Tooltip","d_28","d_29","i_0","XTicksAndGridLines","pathLength","_temp24","_temp25","_temp26","_temp27","_temp28","mouseOverLine","d_36","layer","d_35","position","el_3","el","el_2","el_1","el_0","d_33","d_32","d_27","d_24","d_21","d_18","d_17","d_20","d_19","d_14","d_13","d_16","d_15","d_8","d_7","d_10","d_9","d_12","d_11","d_2","d_1","d_4","d_3","d_6","d_5","DualAxisLineChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","language","showColorScale","minHeight","colorLegendTitle","theme","ariaLabel","Colors","light","categoricalColors","colors","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","GraphHeader","EmptyState","ColorLegend","colorLegend","GraphArea","getNoOfTicks","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-CTPQjnHt.cjs"),u=require("react"),ce=require("maplibre-gl"),ae=require("pmtiles");;/* empty css */const Q=require("@dnd-kit/core"),ue=require("@dnd-kit/modifiers"),ie=require("./index-DRXx7m-C.cjs"),me=require("./string2HTML-CPGr_I5E.cjs"),se=require("./select-Bnfk0lJx.cjs"),fe=require("./GraphHeader.cjs"),pe=require("./GraphFooter.cjs"),ne=require("./GraphContainer-d8A46BK2.cjs");function le(f){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(f){for(const n in f)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(f,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>f[n]})}}return e.default=f,Object.freeze(e)}const $=le(ce),de=le(ae);function ge(f,e){let n=!1;function r(t,i){if(!n){n=!0;const m=t.getCenter(),l=t.getZoom(),s=t.getBearing(),p=t.getPitch();i.jumpTo({center:m,zoom:l,bearing:s,pitch:p}),n=!1}}f.on("move",()=>{r(f,e)}),e.on("move",()=>{r(e,f)})}function he(f){const e=o.compilerRuntimeExports.c(47),{height:n,width:r,mapStyles:t,center:i,zoomLevel:m,mapLegend:l}=f,[s,p]=u.useState(50),[x,v]=u.useState(!1),R=u.useRef(null),[z,B]=u.useState(!0),F=u.useRef(50),A=u.useRef(0);let G;e[0]===Symbol.for("react.memo_cache_sentinel")?(G={activationConstraint:{distance:0}},e[0]=G):G=e[0];const L=Q.useSensors(Q.useSensor(Q.PointerSensor,G));let c;e[1]!==s?(c=()=>{v(!0),F.current=s,R.current&&(A.current=R.current.getBoundingClientRect().width)},e[1]=s,e[2]=c):c=e[2];const a=c;let P;e[3]===Symbol.for("react.memo_cache_sentinel")?(P=Y=>{if(!R.current||A.current===0)return;const K=Y.delta.x/A.current*100,ee=Math.max(0,Math.min(100,F.current+K));p(ee)},e[3]=P):P=e[3];const Z=P;let C;e[4]===Symbol.for("react.memo_cache_sentinel")?(C=()=>{v(!1)},e[4]=C):C=e[4];const V=C;let k;e[5]!==x?(k=Y=>{if(x||!R.current)return;const K=R.current.getBoundingClientRect(),te=(Y.clientX-K.left)/K.width*100;p(Math.max(0,Math.min(100,te)))},e[5]=x,e[6]=k):k=e[6];const O=k,y=u.useRef(null),H=u.useRef(null),b=u.useRef(null),J=u.useRef(null);let M,I;e[7]!==i||e[8]!==t||e[9]!==r||e[10]!==m?(M=()=>{if(J.current&&H.current&&b.current&&r){se.select(J.current).selectAll(".maplibregl-compare").remove(),se.select(H.current).selectAll("div").remove(),se.select(b.current).selectAll("div").remove();const te=new de.Protocol;$.addProtocol("pmtiles",te.tile);const re=new $.Map({container:H.current,style:t[0],center:i||[0,0],zoom:m||4}),oe=new $.Map({container:b.current,style:t[1],center:i||[0,0],zoom:m||4});oe.addControl(new $.NavigationControl({visualizePitch:!0,showZoom:!0,showCompass:!0}),"bottom-right"),re.addControl(new $.ScaleControl,"bottom-left"),re.addControl(new $.NavigationControl({visualizePitch:!0,showZoom:!0,showCompass:!0}),"bottom-right"),oe.addControl(new $.ScaleControl,"bottom-left"),ge(re,oe)}},I=[r,t,i,m],e[7]=i,e[8]=t,e[9]=r,e[10]=m,e[11]=M,e[12]=I):(M=e[11],I=e[12]),u.useEffect(M,I);let w;e[13]!==n||e[14]!==r?(w={width:r,height:n},e[13]=n,e[14]=r,e[15]=w):w=e[15];let X;e[16]===Symbol.for("react.memo_cache_sentinel")?(X={inset:0},e[16]=X):X=e[16];let _;e[17]===Symbol.for("react.memo_cache_sentinel")?(_=[ue.restrictToHorizontalAxis],e[17]=_):_=e[17];const q=x?"grabbing":"col-resize";let S;e[18]!==n||e[19]!==q||e[20]!==r?(S={position:"relative",width:r,height:n,overflow:"hidden",cursor:q,userSelect:"none"},e[18]=n,e[19]=q,e[20]=r,e[21]=S):S=e[21];const T=`polygon(${s}% 0%, ${s}% 100%, 100% 100%, 100% 0%)`;let d;e[22]!==T?(d=o.jsxRuntimeExports.jsx("div",{ref:b,className:"absolute h-full rightMap w-full",style:{position:"absolute",top:0,left:0,clipPath:T}}),e[22]=T,e[23]=d):d=e[23];const E=`polygon(0% 0%, ${s}% 0%, ${s}% 100%, 0% 100%)`;let g;e[24]!==E?(g=o.jsxRuntimeExports.jsx("div",{ref:H,className:"absolute h-full leftMap w-full",style:{position:"absolute",top:0,left:0,inset:0,clipPath:E}}),e[24]=E,e[25]=g):g=e[25];let h;e[26]!==s?(h=o.jsxRuntimeExports.jsx(xe,{position:s}),e[26]=s,e[27]=h):h=e[27];let j;e[28]!==O||e[29]!==S||e[30]!==d||e[31]!==g||e[32]!==h?(j=o.jsxRuntimeExports.jsxs("div",{ref:R,style:S,onClick:O,children:[d,g,h]}),e[28]=O,e[29]=S,e[30]=d,e[31]=g,e[32]=h,e[33]=j):j=e[33];let D;e[34]!==a||e[35]!==L||e[36]!==j?(D=o.jsxRuntimeExports.jsx("div",{ref:J,className:"map maplibre-show-control relative w-full h-full",style:X,children:o.jsxRuntimeExports.jsx(Q.DndContext,{sensors:L,modifiers:_,onDragStart:a,onDragMove:Z,onDragEnd:V,children:j})}),e[34]=a,e[35]=L,e[36]=j,e[37]=D):D=e[37];let N;e[38]!==D||e[39]!==w?(N=o.jsxRuntimeExports.jsx("div",{style:w,children:D}),e[38]=D,e[39]=w,e[40]=N):N=e[40];let W;e[41]!==l||e[42]!==z?(W=l?o.jsxRuntimeExports.jsx("div",{className:"absolute left-[22px] bottom-13",children:z?o.jsxRuntimeExports.jsxs(o.jsxRuntimeExports.Fragment,{children:[o.jsxRuntimeExports.jsx("div",{className:"color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]",onClick:()=>{B(!1)},children:o.jsxRuntimeExports.jsx(ie.X,{})}),o.jsxRuntimeExports.jsx("div",{className:"color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",dangerouslySetInnerHTML:typeof l=="string"?{__html:me.string2HTML(l)}:void 0,children:u.isValidElement(l)?l:null})]}):o.jsxRuntimeExports.jsx("button",{type:"button",className:"mb-0 border-0 bg-transparent p-0 self-start",onClick:()=>{B(!0)},children:o.jsxRuntimeExports.jsx("div",{className:"show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500",children:"Show Legend"})})}):null,e[41]=l,e[42]=z,e[43]=W):W=e[43];let U;return e[44]!==N||e[45]!==W?(U=o.jsxRuntimeExports.jsxs("div",{className:"flex flex-col grow justify-center leading-0",ref:y,"aria-label":"Map area",children:[N,W]}),e[44]=N,e[45]=W,e[46]=U):U=e[46],U}function xe(f){const e=o.compilerRuntimeExports.c(10),{position:n}=f;let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={id:"slider-handle"},e[0]=r):r=e[0];const{attributes:t,listeners:i,setNodeRef:m}=Q.useDraggable(r),l=`${n}%`;let s;e[1]!==l?(s={position:"absolute",left:l,top:0,bottom:0,width:"40px",transform:"translateX(-50%)",cursor:"col-resize",display:"flex",justifyContent:"center",alignItems:"center",zIndex:10,touchAction:"none"},e[1]=l,e[2]=s):s=e[2];let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=o.jsxRuntimeExports.jsx("div",{className:"h-full bg-primary-blue-600 dark:bg-primary-blue-400",style:{width:"2px"}}),e[3]=p):p=e[3];let x;e[4]===Symbol.for("react.memo_cache_sentinel")?(x=o.jsxRuntimeExports.jsx("div",{className:"flex bg-primary-blue-600 dark:bg-primary-blue-400 rounded-full absolute items-center justify-center text-primary-white font-primary-white",style:{boxShadow:"inset 0 0 0 1px #fff",width:"42px",height:"42px",top:"calc(50% - 21px)",left:"0",cursor:"col-resize"},children:o.jsxRuntimeExports.jsx(ie.ChevronLeftRight,{})}),e[4]=x):x=e[4];let v;return e[5]!==t||e[6]!==i||e[7]!==m||e[8]!==s?(v=o.jsxRuntimeExports.jsxs("div",{ref:m,style:s,...i,...t,children:[p,x]}),e[5]=t,e[6]=i,e[7]=m,e[8]=s,e[9]=v):v=e[9],v}function be(f){const e=o.compilerRuntimeExports.c(49),{graphTitle:n,height:r,width:t,relativeHeight:i,sources:m,graphDescription:l,footNote:s,padding:p,backgroundColor:x,graphID:v,mapStyles:R,center:z,zoomLevel:B,language:F,minHeight:A,theme:G,ariaLabel:L,styles:c,classNames:a,mapLegend:P}=f,Z=x===void 0?!1:x;let C;e[0]!==z?(C=z===void 0?[0,0]:z,e[0]=z,e[1]=C):C=e[1];const V=C,k=B===void 0?3:B,O=F===void 0?"en":F,y=A===void 0?0:A,H=G===void 0?"light":G,[b,J]=u.useState(0),[M,I]=u.useState(0),w=u.useRef(null),X=u.useRef(null);let _,q;e[2]===Symbol.for("react.memo_cache_sentinel")?(_=()=>{const D=new ResizeObserver(N=>{J(N[0].target.clientWidth||620),I(N[0].target.clientHeight||480)});return w.current&&D.observe(w.current),()=>D.disconnect()},q=[],e[2]=_,e[3]=q):(_=e[2],q=e[3]),u.useEffect(_,q);const S=a?.graphContainer,T=c?.graphContainer;let d;e[4]!==a?.description||e[5]!==a?.title||e[6]!==l||e[7]!==n||e[8]!==c?.description||e[9]!==c?.title||e[10]!==t?(d=n||l?o.jsxRuntimeExports.jsx(fe.GraphHeader,{styles:{title:c?.title,description:c?.description},classNames:{title:a?.title,description:a?.description},graphTitle:n,graphDescription:l,width:t}):null,e[4]=a?.description,e[5]=a?.title,e[6]=l,e[7]=n,e[8]=c?.description,e[9]=c?.title,e[10]=t,e[11]=d):d=e[11];let E;e[12]!==V||e[13]!==r||e[14]!==P||e[15]!==R||e[16]!==y||e[17]!==i||e[18]!==M||e[19]!==b||e[20]!==t||e[21]!==k?(E=b&&M?o.jsxRuntimeExports.jsx(he,{width:t||b,height:Math.max(y,r||(i?y?(t||b)*i>y?(t||b)*i:y:(t||b)*i:M)),mapStyles:R,center:V,zoomLevel:k,mapLegend:P}):null,e[12]=V,e[13]=r,e[14]=P,e[15]=R,e[16]=y,e[17]=i,e[18]=M,e[19]=b,e[20]=t,e[21]=k,e[22]=E):E=e[22];let g;e[23]!==E?(g=o.jsxRuntimeExports.jsx(ne.GraphArea,{ref:w,children:E}),e[23]=E,e[24]=g):g=e[24];let h;e[25]!==a?.footnote||e[26]!==a?.source||e[27]!==s||e[28]!==m||e[29]!==c?.footnote||e[30]!==c?.source||e[31]!==t?(h=m||s?o.jsxRuntimeExports.jsx(pe.GraphFooter,{styles:{footnote:c?.footnote,source:c?.source},classNames:{footnote:a?.footnote,source:a?.source},sources:m,footNote:s,width:t}):null,e[25]=a?.footnote,e[26]=a?.source,e[27]=s,e[28]=m,e[29]=c?.footnote,e[30]=c?.source,e[31]=t,e[32]=h):h=e[32];let j;return e[33]!==L||e[34]!==Z||e[35]!==v||e[36]!==r||e[37]!==O||e[38]!==y||e[39]!==p||e[40]!==i||e[41]!==T||e[42]!==d||e[43]!==g||e[44]!==h||e[45]!==S||e[46]!==H||e[47]!==t?(j=o.jsxRuntimeExports.jsxs(ne.GraphContainer,{className:S,style:T,id:v,ref:X,"aria-label":L,backgroundColor:Z,theme:H,language:O,minHeight:y,width:t,height:r,relativeHeight:i,padding:p,children:[d,g,h]}),e[33]=L,e[34]=Z,e[35]=v,e[36]=r,e[37]=O,e[38]=y,e[39]=p,e[40]=i,e[41]=T,e[42]=d,e[43]=g,e[44]=h,e[45]=S,e[46]=H,e[47]=t,e[48]=j):j=e[48],j}exports.GeoHubCompareMaps=be;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-CHPV5EwG-CTPQjnHt.cjs"),a=require("react"),ce=require("maplibre-gl"),ae=require("pmtiles");;/* empty css */const Q=require("@dnd-kit/core"),ue=require("@dnd-kit/modifiers"),ie=require("./index-DRXx7m-C.cjs"),me=require("./string2HTML-CPGr_I5E.cjs"),se=require("./select-Bnfk0lJx.cjs"),fe=require("./GraphHeader.cjs"),pe=require("./GraphFooter.cjs"),ne=require("./GraphContainer-d8A46BK2.cjs");function le(m){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(m){for(const n in m)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(m,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>m[n]})}}return e.default=m,Object.freeze(e)}const T=le(ce),de=le(ae);function ge(m,e){let n=!1;function r(o,f){if(!n){n=!0;const u=o.getCenter(),i=o.getZoom(),s=o.getBearing(),p=o.getPitch();f.jumpTo({center:u,zoom:i,bearing:s,pitch:p}),n=!1}}m.on("move",()=>{r(m,e)}),e.on("move",()=>{r(e,m)})}function he(m){const e=t.compilerRuntimeExports.c(47),{height:n,width:r,mapStyles:o,center:f,zoomLevel:u,mapLegend:i}=m,[s,p]=a.useState(50),[x,b]=a.useState(!1),y=a.useRef(null),[N,W]=a.useState(!0),B=a.useRef(50),$=a.useRef(0);let q;e[0]===Symbol.for("react.memo_cache_sentinel")?(q={activationConstraint:{distance:0}},e[0]=q):q=e[0];const G=Q.useSensors(Q.useSensor(Q.PointerSensor,q));let l;e[1]!==s?(l=()=>{b(!0),B.current=s,y.current&&($.current=y.current.getBoundingClientRect().width)},e[1]=s,e[2]=l):l=e[2];const c=l;let z;e[3]===Symbol.for("react.memo_cache_sentinel")?(z=Y=>{if(!y.current||$.current===0)return;const K=Y.delta.x/$.current*100,ee=Math.max(0,Math.min(100,B.current+K));p(ee)},e[3]=z):z=e[3];const F=z;let S;e[4]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{b(!1)},e[4]=S):S=e[4];const Z=S;let P;e[5]!==x?(P=Y=>{if(x||!y.current)return;const K=y.current.getBoundingClientRect(),te=(Y.clientX-K.left)/K.width*100;p(Math.max(0,Math.min(100,te)))},e[5]=x,e[6]=P):P=e[6];const L=P,V=a.useRef(null),k=a.useRef(null),E=a.useRef(null),J=a.useRef(null);let C,A;e[7]!==f||e[8]!==o||e[9]!==r||e[10]!==u?(C=()=>{if(J.current&&k.current&&E.current&&r){se.select(J.current).selectAll(".maplibregl-compare").remove(),se.select(k.current).selectAll("div").remove(),se.select(E.current).selectAll("div").remove();const te=new de.Protocol;T.addProtocol("pmtiles",te.tile);const re=new T.Map({container:k.current,style:o[0],center:f||[0,0],zoom:u||4}),oe=new T.Map({container:E.current,style:o[1],center:f||[0,0],zoom:u||4});oe.addControl(new T.NavigationControl({visualizePitch:!0,showZoom:!0,showCompass:!0}),"bottom-right"),re.addControl(new T.ScaleControl,"bottom-left"),re.addControl(new T.NavigationControl({visualizePitch:!0,showZoom:!0,showCompass:!0}),"bottom-right"),oe.addControl(new T.ScaleControl,"bottom-left"),ge(re,oe)}},A=[r,o,f,u],e[7]=f,e[8]=o,e[9]=r,e[10]=u,e[11]=C,e[12]=A):(C=e[11],A=e[12]),a.useEffect(C,A);let j;e[13]!==n||e[14]!==r?(j={width:r,height:n},e[13]=n,e[14]=r,e[15]=j):j=e[15];let I;e[16]===Symbol.for("react.memo_cache_sentinel")?(I={inset:0},e[16]=I):I=e[16];let _;e[17]===Symbol.for("react.memo_cache_sentinel")?(_=[ue.restrictToHorizontalAxis],e[17]=_):_=e[17];const H=x?"grabbing":"col-resize";let R;e[18]!==n||e[19]!==H||e[20]!==r?(R={position:"relative",width:r,height:n,overflow:"hidden",cursor:H,userSelect:"none"},e[18]=n,e[19]=H,e[20]=r,e[21]=R):R=e[21];const O=`polygon(${s}% 0%, ${s}% 100%, 100% 100%, 100% 0%)`;let d;e[22]!==O?(d=t.jsxRuntimeExports.jsx("div",{ref:E,className:"absolute h-full rightMap w-full",style:{position:"absolute",top:0,left:0,clipPath:O}}),e[22]=O,e[23]=d):d=e[23];const w=`polygon(0% 0%, ${s}% 0%, ${s}% 100%, 0% 100%)`;let g;e[24]!==w?(g=t.jsxRuntimeExports.jsx("div",{ref:k,className:"absolute h-full leftMap w-full",style:{position:"absolute",top:0,left:0,inset:0,clipPath:w}}),e[24]=w,e[25]=g):g=e[25];let h;e[26]!==s?(h=t.jsxRuntimeExports.jsx(xe,{position:s}),e[26]=s,e[27]=h):h=e[27];let v;e[28]!==L||e[29]!==R||e[30]!==d||e[31]!==g||e[32]!==h?(v=t.jsxRuntimeExports.jsxs("div",{ref:y,style:R,onClick:L,children:[d,g,h]}),e[28]=L,e[29]=R,e[30]=d,e[31]=g,e[32]=h,e[33]=v):v=e[33];let M;e[34]!==c||e[35]!==G||e[36]!==v?(M=t.jsxRuntimeExports.jsx("div",{ref:J,className:"map maplibre-show-control relative w-full h-full",style:I,children:t.jsxRuntimeExports.jsx(Q.DndContext,{sensors:G,modifiers:_,onDragStart:c,onDragMove:F,onDragEnd:Z,children:v})}),e[34]=c,e[35]=G,e[36]=v,e[37]=M):M=e[37];let D;e[38]!==M||e[39]!==j?(D=t.jsxRuntimeExports.jsx("div",{style:j,children:M}),e[38]=M,e[39]=j,e[40]=D):D=e[40];let X;e[41]!==i||e[42]!==N?(X=i?t.jsxRuntimeExports.jsx("div",{className:"absolute left-[22px] bottom-13",children:N?t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]",onClick:()=>{W(!1)},children:t.jsxRuntimeExports.jsx(ie.X,{})}),t.jsxRuntimeExports.jsx("div",{className:"color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",dangerouslySetInnerHTML:typeof i=="string"?{__html:me.string2HTML(i)}:void 0,children:a.isValidElement(i)?i:null})]}):t.jsxRuntimeExports.jsx("button",{type:"button",className:"mb-0 border-0 bg-transparent p-0 self-start",onClick:()=>{W(!0)},children:t.jsxRuntimeExports.jsx("div",{className:"show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500",children:"Show Legend"})})}):null,e[41]=i,e[42]=N,e[43]=X):X=e[43];let U;return e[44]!==D||e[45]!==X?(U=t.jsxRuntimeExports.jsxs("div",{className:"flex flex-col grow justify-center leading-0",ref:V,"aria-label":"Map area",children:[D,X]}),e[44]=D,e[45]=X,e[46]=U):U=e[46],U}function xe(m){const e=t.compilerRuntimeExports.c(10),{position:n}=m;let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={id:"slider-handle"},e[0]=r):r=e[0];const{attributes:o,listeners:f,setNodeRef:u}=Q.useDraggable(r),i=`${n}%`;let s;e[1]!==i?(s={position:"absolute",left:i,top:0,bottom:0,width:"40px",transform:"translateX(-50%)",cursor:"col-resize",display:"flex",justifyContent:"center",alignItems:"center",zIndex:10,touchAction:"none"},e[1]=i,e[2]=s):s=e[2];let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsxRuntimeExports.jsx("div",{className:"h-full bg-primary-blue-600 dark:bg-primary-blue-400",style:{width:"2px"}}),e[3]=p):p=e[3];let x;e[4]===Symbol.for("react.memo_cache_sentinel")?(x=t.jsxRuntimeExports.jsx("div",{className:"flex bg-primary-blue-600 dark:bg-primary-blue-400 rounded-full absolute items-center justify-center text-primary-white font-primary-white",style:{boxShadow:"inset 0 0 0 1px #fff",width:"42px",height:"42px",top:"calc(50% - 21px)",left:"0",cursor:"col-resize"},children:t.jsxRuntimeExports.jsx(ie.ChevronLeftRight,{})}),e[4]=x):x=e[4];let b;return e[5]!==o||e[6]!==f||e[7]!==u||e[8]!==s?(b=t.jsxRuntimeExports.jsxs("div",{ref:u,style:s,...f,...o,children:[p,x]}),e[5]=o,e[6]=f,e[7]=u,e[8]=s,e[9]=b):b=e[9],b}function be(m){const e=t.compilerRuntimeExports.c(45),{graphTitle:n,height:r,width:o,relativeHeight:f,sources:u,graphDescription:i,footNote:s,padding:p,backgroundColor:x,graphID:b,mapStyles:y,center:N,zoomLevel:W,language:B,minHeight:$,theme:q,ariaLabel:G,styles:l,classNames:c,mapLegend:z}=m,F=x===void 0?!1:x;let S;e[0]!==N?(S=N===void 0?[0,0]:N,e[0]=N,e[1]=S):S=e[1];const Z=S,P=W===void 0?3:W,L=B===void 0?"en":B,V=$===void 0?0:$,k=q===void 0?"light":q,[E,J]=a.useState(0),[C,A]=a.useState(0),j=a.useRef(null),I=a.useRef(null);let _,H;e[2]===Symbol.for("react.memo_cache_sentinel")?(_=()=>{const M=new ResizeObserver(D=>{J(D[0].target.clientWidth||620),A(D[0].target.clientHeight||480)});return j.current&&M.observe(j.current),()=>M.disconnect()},H=[],e[2]=_,e[3]=H):(_=e[2],H=e[3]),a.useEffect(_,H);const R=c?.graphContainer,O=l?.graphContainer;let d;e[4]!==c?.description||e[5]!==c?.title||e[6]!==i||e[7]!==n||e[8]!==l?.description||e[9]!==l?.title||e[10]!==o?(d=n||i?t.jsxRuntimeExports.jsx(fe.GraphHeader,{styles:{title:l?.title,description:l?.description},classNames:{title:c?.title,description:c?.description},graphTitle:n,graphDescription:i,width:o}):null,e[4]=c?.description,e[5]=c?.title,e[6]=i,e[7]=n,e[8]=l?.description,e[9]=l?.title,e[10]=o,e[11]=d):d=e[11];let w;e[12]!==Z||e[13]!==z||e[14]!==y||e[15]!==C||e[16]!==E||e[17]!==P?(w=E&&C?t.jsxRuntimeExports.jsx(he,{width:E,height:C,mapStyles:y,center:Z,zoomLevel:P,mapLegend:z}):null,e[12]=Z,e[13]=z,e[14]=y,e[15]=C,e[16]=E,e[17]=P,e[18]=w):w=e[18];let g;e[19]!==w?(g=t.jsxRuntimeExports.jsx(ne.GraphArea,{ref:j,children:w}),e[19]=w,e[20]=g):g=e[20];let h;e[21]!==c?.footnote||e[22]!==c?.source||e[23]!==s||e[24]!==u||e[25]!==l?.footnote||e[26]!==l?.source||e[27]!==o?(h=u||s?t.jsxRuntimeExports.jsx(pe.GraphFooter,{styles:{footnote:l?.footnote,source:l?.source},classNames:{footnote:c?.footnote,source:c?.source},sources:u,footNote:s,width:o}):null,e[21]=c?.footnote,e[22]=c?.source,e[23]=s,e[24]=u,e[25]=l?.footnote,e[26]=l?.source,e[27]=o,e[28]=h):h=e[28];let v;return e[29]!==G||e[30]!==F||e[31]!==b||e[32]!==r||e[33]!==L||e[34]!==V||e[35]!==p||e[36]!==f||e[37]!==O||e[38]!==d||e[39]!==g||e[40]!==h||e[41]!==R||e[42]!==k||e[43]!==o?(v=t.jsxRuntimeExports.jsxs(ne.GraphContainer,{className:R,style:O,id:b,ref:I,"aria-label":G,backgroundColor:F,theme:k,language:L,minHeight:V,width:o,height:r,relativeHeight:f,padding:p,children:[d,g,h]}),e[29]=G,e[30]=F,e[31]=b,e[32]=r,e[33]=L,e[34]=V,e[35]=p,e[36]=f,e[37]=O,e[38]=d,e[39]=g,e[40]=h,e[41]=R,e[42]=k,e[43]=o,e[44]=v):v=e[44],v}exports.GeoHubCompareMaps=be;
|
|
2
2
|
//# sourceMappingURL=GeoHubCompareMaps.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoHubCompareMaps.cjs","sources":["../src/Components/Graphs/Maps/GeoHubMaps/CompareMaps/Graph.tsx","../src/Components/Graphs/Maps/GeoHubMaps/CompareMaps/index.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from 'react';\r\nimport * as maplibreGl from 'maplibre-gl';\r\nimport * as pmtiles from 'pmtiles';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\nimport { select } from 'd3-selection';\r\nimport {\r\n DndContext,\r\n useDraggable,\r\n useSensor,\r\n useSensors,\r\n PointerSensor,\r\n DragMoveEvent,\r\n} from '@dnd-kit/core';\r\nimport { restrictToHorizontalAxis } from '@dnd-kit/modifiers';\r\nimport React from 'react';\r\n\r\nimport { ChevronLeftRight, X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n width: number;\r\n height: number;\r\n mapStyles: [string, string];\r\n center: [number, number];\r\n mapLegend?: string | React.ReactNode;\r\n zoomLevel: number;\r\n}\r\n\r\nfunction synchronizeMap(map1: maplibreGl.Map, map2: maplibreGl.Map) {\r\n let isSyncing = false;\r\n function syncMap(sourceMap: maplibreGl.Map, targetMap: maplibreGl.Map) {\r\n if (!isSyncing) {\r\n isSyncing = true;\r\n const center = sourceMap.getCenter();\r\n const zoom = sourceMap.getZoom();\r\n const bearing = sourceMap.getBearing();\r\n const pitch = sourceMap.getPitch();\r\n targetMap.jumpTo({\r\n center,\r\n zoom,\r\n bearing,\r\n pitch,\r\n });\r\n isSyncing = false;\r\n }\r\n }\r\n\r\n // Event listeners for map1\r\n map1.on('move', () => {\r\n syncMap(map1, map2);\r\n });\r\n\r\n // Event listeners for map2\r\n map2.on('move', () => {\r\n syncMap(map2, map1);\r\n });\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const { height, width, mapStyles, center, zoomLevel, mapLegend } = props;\r\n const [position, setPosition] = useState(50);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [showLegend, setShowLegend] = useState(true);\r\n const dragStartPositionRef = useRef(50);\r\n const sliderWidthRef = useRef(0);\r\n\r\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 0 } }));\r\n\r\n const handleDragStart = () => {\r\n setIsDragging(true);\r\n dragStartPositionRef.current = position;\r\n\r\n if (containerRef.current) {\r\n sliderWidthRef.current = containerRef.current.getBoundingClientRect().width;\r\n }\r\n };\r\n\r\n const handleDragMove = (event: DragMoveEvent) => {\r\n if (!containerRef.current || sliderWidthRef.current === 0) return;\r\n\r\n // Calculate position change as percentage of width\r\n const deltaPercentage = (event.delta.x / sliderWidthRef.current) * 100;\r\n const newPosition = Math.max(0, Math.min(100, dragStartPositionRef.current + deltaPercentage));\r\n\r\n setPosition(newPosition);\r\n };\r\n\r\n const handleDragEnd = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (isDragging || !containerRef.current) return;\r\n\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const clickX = e.clientX - rect.left;\r\n const newPosition = (clickX / rect.width) * 100;\r\n\r\n setPosition(Math.max(0, Math.min(100, newPosition)));\r\n };\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const leftMapRef = useRef<HTMLDivElement>(null);\r\n const rightMapRef = useRef<HTMLDivElement>(null);\r\n const mapContainer = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n if (mapContainer.current && leftMapRef.current && rightMapRef.current && width) {\r\n const mapDiv = select(mapContainer.current);\r\n mapDiv.selectAll('.maplibregl-compare').remove();\r\n const leftMapDiv = select(leftMapRef.current);\r\n leftMapDiv.selectAll('div').remove();\r\n const rightMapDiv = select(rightMapRef.current);\r\n rightMapDiv.selectAll('div').remove();\r\n const protocol = new pmtiles.Protocol();\r\n maplibreGl.addProtocol('pmtiles', protocol.tile);\r\n const leftMap = new maplibreGl.Map({\r\n container: leftMapRef.current,\r\n style: mapStyles[0],\r\n center: center || [0, 0],\r\n zoom: zoomLevel || 4,\r\n });\r\n\r\n const rightMap = new maplibreGl.Map({\r\n container: rightMapRef.current,\r\n style: mapStyles[1],\r\n center: center || [0, 0],\r\n zoom: zoomLevel || 4,\r\n });\r\n rightMap.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n leftMap.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n leftMap.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n rightMap.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n synchronizeMap(leftMap, rightMap);\r\n }\r\n }, [width, mapStyles, center, zoomLevel]);\r\n return (\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n <div\r\n style={{\r\n width,\r\n height,\r\n }}\r\n >\r\n <div\r\n ref={mapContainer}\r\n className='map maplibre-show-control relative w-full h-full'\r\n style={{ inset: 0 }}\r\n >\r\n <DndContext\r\n sensors={sensors}\r\n modifiers={[restrictToHorizontalAxis]}\r\n onDragStart={handleDragStart}\r\n onDragMove={handleDragMove}\r\n onDragEnd={handleDragEnd}\r\n >\r\n <div\r\n ref={containerRef}\r\n style={{\r\n position: 'relative',\r\n width,\r\n height,\r\n overflow: 'hidden',\r\n cursor: isDragging ? 'grabbing' : 'col-resize',\r\n userSelect: 'none', // Prevent text selection during drag\r\n }}\r\n onClick={handleClick}\r\n >\r\n <div\r\n ref={rightMapRef}\r\n className='absolute h-full rightMap w-full'\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n clipPath: `polygon(${position}% 0%, ${position}% 100%, 100% 100%, 100% 0%)`,\r\n }}\r\n />\r\n <div\r\n ref={leftMapRef}\r\n className='absolute h-full leftMap w-full'\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n inset: 0,\r\n clipPath: `polygon(0% 0%, ${position}% 0%, ${position}% 100%, 0% 100%)`,\r\n }}\r\n />\r\n\r\n <SliderHandle position={position} />\r\n </div>\r\n </DndContext>\r\n </div>\r\n </div>\r\n {mapLegend ? (\r\n <div className='absolute left-[22px] bottom-13'>\r\n {showLegend ? (\r\n <>\r\n <div\r\n className='color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]'\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]'\r\n dangerouslySetInnerHTML={\r\n typeof mapLegend === 'string' ? { __html: string2HTML(mapLegend) } : undefined\r\n }\r\n >\r\n {React.isValidElement(mapLegend) ? mapLegend : null}\r\n </div>\r\n </>\r\n ) : (\r\n <button\r\n type='button'\r\n className='mb-0 border-0 bg-transparent p-0 self-start'\r\n onClick={() => {\r\n setShowLegend(true);\r\n }}\r\n >\r\n <div className='show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500'>\r\n Show Legend\r\n </div>\r\n </button>\r\n )}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\ninterface HandleProps {\r\n position: number;\r\n}\r\n\r\nfunction SliderHandle(props: HandleProps) {\r\n const { position } = props;\r\n const { attributes, listeners, setNodeRef } = useDraggable({ id: 'slider-handle' });\r\n\r\n return (\r\n <div\r\n ref={setNodeRef}\r\n style={{\r\n position: 'absolute',\r\n left: `${position}%`,\r\n top: 0,\r\n bottom: 0,\r\n width: '40px',\r\n transform: 'translateX(-50%)',\r\n cursor: 'col-resize',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n zIndex: 10,\r\n touchAction: 'none',\r\n }}\r\n {...listeners}\r\n {...attributes}\r\n >\r\n <div\r\n className='h-full bg-primary-blue-600 dark:bg-primary-blue-400'\r\n style={{ width: '2px' }}\r\n />\r\n <div\r\n className='flex bg-primary-blue-600 dark:bg-primary-blue-400 rounded-full absolute items-center justify-center text-primary-white font-primary-white'\r\n style={{\r\n boxShadow: 'inset 0 0 0 1px #fff',\r\n width: '42px',\r\n height: '42px',\r\n top: 'calc(50% - 21px)',\r\n left: '0',\r\n cursor: 'col-resize',\r\n }}\r\n >\r\n <ChevronLeftRight />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useRef, useEffect, useState } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ClassNameObject, Languages, SourcesDataType, StyleObject } from '@/Types';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\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 /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** URLs for mapStyles JSON user wants to compare */\r\n mapStyles: [string, string];\r\n /** Defines the legend for the map. mapLegend with type string is show as innerHTML. */\r\n mapLegend?: string | React.ReactNode;\r\n /** Starting center point of the map */\r\n center?: [number, number];\r\n /** Starting zoom level of the map */\r\n zoomLevel?: number;\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\n/** For using these maps you will have to install [`maplibre`](https://maplibre.org/maplibre-gl-js/docs/#npm), [pmtiles](https://www.npmjs.com/package/pmtiles), [dnd-kit/core](https://www.npmjs.com/package/@dnd-kit/core), and [dnd-kit/modifier](https://www.npmjs.com/package/@dnd-kit/modifiers) package to your project */\r\nexport function GeoHubCompareMaps(props: Props) {\r\n const {\r\n graphTitle,\r\n height,\r\n width,\r\n relativeHeight,\r\n sources,\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n mapStyles,\r\n center = [0, 0],\r\n zoomLevel = 3,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n mapLegend,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\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 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 ? (\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 />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n width={width || svgWidth}\r\n height={Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}\r\n mapStyles={mapStyles}\r\n center={center}\r\n zoomLevel={zoomLevel}\r\n mapLegend={mapLegend}\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":["synchronizeMap","map1","map2","isSyncing","syncMap","sourceMap","targetMap","center","getCenter","zoom","getZoom","bearing","getBearing","pitch","getPitch","jumpTo","on","Graph","props","$","_c","height","width","mapStyles","zoomLevel","mapLegend","position","setPosition","useState","isDragging","setIsDragging","containerRef","useRef","showLegend","setShowLegend","dragStartPositionRef","sliderWidthRef","t0","Symbol","for","activationConstraint","distance","sensors","useSensors","useSensor","PointerSensor","t1","current","getBoundingClientRect","handleDragStart","t2","event","deltaPercentage","delta","x","newPosition","Math","max","min","handleDragMove","t3","handleDragEnd","t4","e","rect","newPosition_0","clientX","left","handleClick","graphDiv","leftMapRef","rightMapRef","mapContainer","t5","t6","select","selectAll","remove","protocol","pmtiles","Protocol","maplibreGl","addProtocol","tile","leftMap","Map","container","style","rightMap","addControl","NavigationControl","visualizePitch","showZoom","showCompass","ScaleControl","useEffect","t7","t8","inset","t9","restrictToHorizontalAxis","t10","t11","overflow","cursor","userSelect","t12","t13","top","clipPath","t14","t15","t16","SliderHandle","t17","t18","jsx","DndContext","t19","t20","jsxs","Fragment","X","__html","string2HTML","undefined","React","isValidElement","t21","id","attributes","listeners","setNodeRef","useDraggable","bottom","transform","display","justifyContent","alignItems","zIndex","touchAction","boxShadow","ChevronLeftRight","GeoHubCompareMaps","graphTitle","relativeHeight","sources","graphDescription","footNote","padding","backgroundColor","graphID","language","minHeight","theme","ariaLabel","styles","classNames","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","title","GraphHeader","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GeoHubCompareMaps.cjs","sources":["../src/Components/Graphs/Maps/GeoHubMaps/CompareMaps/Graph.tsx","../src/Components/Graphs/Maps/GeoHubMaps/CompareMaps/index.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from 'react';\r\nimport * as maplibreGl from 'maplibre-gl';\r\nimport * as pmtiles from 'pmtiles';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\nimport { select } from 'd3-selection';\r\nimport {\r\n DndContext,\r\n useDraggable,\r\n useSensor,\r\n useSensors,\r\n PointerSensor,\r\n DragMoveEvent,\r\n} from '@dnd-kit/core';\r\nimport { restrictToHorizontalAxis } from '@dnd-kit/modifiers';\r\nimport React from 'react';\r\n\r\nimport { ChevronLeftRight, X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n width: number;\r\n height: number;\r\n mapStyles: [string, string];\r\n center: [number, number];\r\n mapLegend?: string | React.ReactNode;\r\n zoomLevel: number;\r\n}\r\n\r\nfunction synchronizeMap(map1: maplibreGl.Map, map2: maplibreGl.Map) {\r\n let isSyncing = false;\r\n function syncMap(sourceMap: maplibreGl.Map, targetMap: maplibreGl.Map) {\r\n if (!isSyncing) {\r\n isSyncing = true;\r\n const center = sourceMap.getCenter();\r\n const zoom = sourceMap.getZoom();\r\n const bearing = sourceMap.getBearing();\r\n const pitch = sourceMap.getPitch();\r\n targetMap.jumpTo({\r\n center,\r\n zoom,\r\n bearing,\r\n pitch,\r\n });\r\n isSyncing = false;\r\n }\r\n }\r\n\r\n // Event listeners for map1\r\n map1.on('move', () => {\r\n syncMap(map1, map2);\r\n });\r\n\r\n // Event listeners for map2\r\n map2.on('move', () => {\r\n syncMap(map2, map1);\r\n });\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const { height, width, mapStyles, center, zoomLevel, mapLegend } = props;\r\n const [position, setPosition] = useState(50);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [showLegend, setShowLegend] = useState(true);\r\n const dragStartPositionRef = useRef(50);\r\n const sliderWidthRef = useRef(0);\r\n\r\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 0 } }));\r\n\r\n const handleDragStart = () => {\r\n setIsDragging(true);\r\n dragStartPositionRef.current = position;\r\n\r\n if (containerRef.current) {\r\n sliderWidthRef.current = containerRef.current.getBoundingClientRect().width;\r\n }\r\n };\r\n\r\n const handleDragMove = (event: DragMoveEvent) => {\r\n if (!containerRef.current || sliderWidthRef.current === 0) return;\r\n\r\n // Calculate position change as percentage of width\r\n const deltaPercentage = (event.delta.x / sliderWidthRef.current) * 100;\r\n const newPosition = Math.max(0, Math.min(100, dragStartPositionRef.current + deltaPercentage));\r\n\r\n setPosition(newPosition);\r\n };\r\n\r\n const handleDragEnd = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (isDragging || !containerRef.current) return;\r\n\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const clickX = e.clientX - rect.left;\r\n const newPosition = (clickX / rect.width) * 100;\r\n\r\n setPosition(Math.max(0, Math.min(100, newPosition)));\r\n };\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const leftMapRef = useRef<HTMLDivElement>(null);\r\n const rightMapRef = useRef<HTMLDivElement>(null);\r\n const mapContainer = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n if (mapContainer.current && leftMapRef.current && rightMapRef.current && width) {\r\n const mapDiv = select(mapContainer.current);\r\n mapDiv.selectAll('.maplibregl-compare').remove();\r\n const leftMapDiv = select(leftMapRef.current);\r\n leftMapDiv.selectAll('div').remove();\r\n const rightMapDiv = select(rightMapRef.current);\r\n rightMapDiv.selectAll('div').remove();\r\n const protocol = new pmtiles.Protocol();\r\n maplibreGl.addProtocol('pmtiles', protocol.tile);\r\n const leftMap = new maplibreGl.Map({\r\n container: leftMapRef.current,\r\n style: mapStyles[0],\r\n center: center || [0, 0],\r\n zoom: zoomLevel || 4,\r\n });\r\n\r\n const rightMap = new maplibreGl.Map({\r\n container: rightMapRef.current,\r\n style: mapStyles[1],\r\n center: center || [0, 0],\r\n zoom: zoomLevel || 4,\r\n });\r\n rightMap.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n leftMap.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n leftMap.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n rightMap.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n synchronizeMap(leftMap, rightMap);\r\n }\r\n }, [width, mapStyles, center, zoomLevel]);\r\n return (\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n <div\r\n style={{\r\n width,\r\n height,\r\n }}\r\n >\r\n <div\r\n ref={mapContainer}\r\n className='map maplibre-show-control relative w-full h-full'\r\n style={{ inset: 0 }}\r\n >\r\n <DndContext\r\n sensors={sensors}\r\n modifiers={[restrictToHorizontalAxis]}\r\n onDragStart={handleDragStart}\r\n onDragMove={handleDragMove}\r\n onDragEnd={handleDragEnd}\r\n >\r\n <div\r\n ref={containerRef}\r\n style={{\r\n position: 'relative',\r\n width,\r\n height,\r\n overflow: 'hidden',\r\n cursor: isDragging ? 'grabbing' : 'col-resize',\r\n userSelect: 'none', // Prevent text selection during drag\r\n }}\r\n onClick={handleClick}\r\n >\r\n <div\r\n ref={rightMapRef}\r\n className='absolute h-full rightMap w-full'\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n clipPath: `polygon(${position}% 0%, ${position}% 100%, 100% 100%, 100% 0%)`,\r\n }}\r\n />\r\n <div\r\n ref={leftMapRef}\r\n className='absolute h-full leftMap w-full'\r\n style={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n inset: 0,\r\n clipPath: `polygon(0% 0%, ${position}% 0%, ${position}% 100%, 0% 100%)`,\r\n }}\r\n />\r\n\r\n <SliderHandle position={position} />\r\n </div>\r\n </DndContext>\r\n </div>\r\n </div>\r\n {mapLegend ? (\r\n <div className='absolute left-[22px] bottom-13'>\r\n {showLegend ? (\r\n <>\r\n <div\r\n className='color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]'\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]'\r\n dangerouslySetInnerHTML={\r\n typeof mapLegend === 'string' ? { __html: string2HTML(mapLegend) } : undefined\r\n }\r\n >\r\n {React.isValidElement(mapLegend) ? mapLegend : null}\r\n </div>\r\n </>\r\n ) : (\r\n <button\r\n type='button'\r\n className='mb-0 border-0 bg-transparent p-0 self-start'\r\n onClick={() => {\r\n setShowLegend(true);\r\n }}\r\n >\r\n <div className='show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500'>\r\n Show Legend\r\n </div>\r\n </button>\r\n )}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\ninterface HandleProps {\r\n position: number;\r\n}\r\n\r\nfunction SliderHandle(props: HandleProps) {\r\n const { position } = props;\r\n const { attributes, listeners, setNodeRef } = useDraggable({ id: 'slider-handle' });\r\n\r\n return (\r\n <div\r\n ref={setNodeRef}\r\n style={{\r\n position: 'absolute',\r\n left: `${position}%`,\r\n top: 0,\r\n bottom: 0,\r\n width: '40px',\r\n transform: 'translateX(-50%)',\r\n cursor: 'col-resize',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n zIndex: 10,\r\n touchAction: 'none',\r\n }}\r\n {...listeners}\r\n {...attributes}\r\n >\r\n <div\r\n className='h-full bg-primary-blue-600 dark:bg-primary-blue-400'\r\n style={{ width: '2px' }}\r\n />\r\n <div\r\n className='flex bg-primary-blue-600 dark:bg-primary-blue-400 rounded-full absolute items-center justify-center text-primary-white font-primary-white'\r\n style={{\r\n boxShadow: 'inset 0 0 0 1px #fff',\r\n width: '42px',\r\n height: '42px',\r\n top: 'calc(50% - 21px)',\r\n left: '0',\r\n cursor: 'col-resize',\r\n }}\r\n >\r\n <ChevronLeftRight />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useRef, useEffect, useState } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { ClassNameObject, Languages, SourcesDataType, StyleObject } from '@/Types';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\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 /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** URLs for mapStyles JSON user wants to compare */\r\n mapStyles: [string, string];\r\n /** Defines the legend for the map. mapLegend with type string is show as innerHTML. */\r\n mapLegend?: string | React.ReactNode;\r\n /** Starting center point of the map */\r\n center?: [number, number];\r\n /** Starting zoom level of the map */\r\n zoomLevel?: number;\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\n/** For using these maps you will have to install [`maplibre`](https://maplibre.org/maplibre-gl-js/docs/#npm), [pmtiles](https://www.npmjs.com/package/pmtiles), [dnd-kit/core](https://www.npmjs.com/package/@dnd-kit/core), and [dnd-kit/modifier](https://www.npmjs.com/package/@dnd-kit/modifiers) package to your project */\r\nexport function GeoHubCompareMaps(props: Props) {\r\n const {\r\n graphTitle,\r\n height,\r\n width,\r\n relativeHeight,\r\n sources,\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n mapStyles,\r\n center = [0, 0],\r\n zoomLevel = 3,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n mapLegend,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\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 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 ? (\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 />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight ? (\r\n <Graph\r\n width={svgWidth}\r\n height={svgHeight}\r\n mapStyles={mapStyles}\r\n center={center}\r\n zoomLevel={zoomLevel}\r\n mapLegend={mapLegend}\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":["synchronizeMap","map1","map2","isSyncing","syncMap","sourceMap","targetMap","center","getCenter","zoom","getZoom","bearing","getBearing","pitch","getPitch","jumpTo","on","Graph","props","$","_c","height","width","mapStyles","zoomLevel","mapLegend","position","setPosition","useState","isDragging","setIsDragging","containerRef","useRef","showLegend","setShowLegend","dragStartPositionRef","sliderWidthRef","t0","Symbol","for","activationConstraint","distance","sensors","useSensors","useSensor","PointerSensor","t1","current","getBoundingClientRect","handleDragStart","t2","event","deltaPercentage","delta","x","newPosition","Math","max","min","handleDragMove","t3","handleDragEnd","t4","e","rect","newPosition_0","clientX","left","handleClick","graphDiv","leftMapRef","rightMapRef","mapContainer","t5","t6","select","selectAll","remove","protocol","pmtiles","Protocol","maplibreGl","addProtocol","tile","leftMap","Map","container","style","rightMap","addControl","NavigationControl","visualizePitch","showZoom","showCompass","ScaleControl","useEffect","t7","t8","inset","t9","restrictToHorizontalAxis","t10","t11","overflow","cursor","userSelect","t12","t13","top","clipPath","t14","t15","t16","SliderHandle","t17","t18","jsx","DndContext","t19","t20","jsxs","Fragment","X","__html","string2HTML","undefined","React","isValidElement","t21","id","attributes","listeners","setNodeRef","useDraggable","bottom","transform","display","justifyContent","alignItems","zIndex","touchAction","boxShadow","ChevronLeftRight","GeoHubCompareMaps","graphTitle","relativeHeight","sources","graphDescription","footNote","padding","backgroundColor","graphID","language","minHeight","theme","ariaLabel","styles","classNames","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","observe","disconnect","graphContainer","description","title","GraphHeader","GraphArea","footnote","source","GraphFooter","GraphContainer"],"mappings":"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"}
|