@undp/data-viz 2.0.0 → 2.0.2
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 +959 -959
- 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/BulletChart.cjs +1 -1
- package/dist/BulletChart.js +2 -2
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.js +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/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.js +32 -24
- package/dist/DonutChart.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/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.js +2 -2
- 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/HeatMap.cjs +1 -1
- package/dist/HeatMap.js +2 -2
- 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/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.js +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/{XAxesLabels-D5X8jngD.cjs → XAxesLabels-C1XSXoWG.cjs} +2 -2
- package/dist/XAxesLabels-C1XSXoWG.cjs.map +1 -0
- package/dist/{XAxesLabels-DNO0KmjL.js → XAxesLabels-Dmbk50u4.js} +18 -16
- package/dist/XAxesLabels-Dmbk50u4.js.map +1 -0
- package/dist/YAxesLabels-1XTb-D0_.js +72 -0
- package/dist/YAxesLabels-1XTb-D0_.js.map +1 -0
- package/dist/YAxesLabels-pjdsVwIM.cjs +2 -0
- package/dist/YAxesLabels-pjdsVwIM.cjs.map +1 -0
- 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/XAxesLabels-D5X8jngD.cjs.map +0 -1
- package/dist/XAxesLabels-DNO0KmjL.js.map +0 -1
- package/dist/YAxesLabels-DcS85Beo.cjs +0 -2
- package/dist/YAxesLabels-DcS85Beo.cjs.map +0 -1
- package/dist/YAxesLabels-Dnnng49-.js +0 -70
- package/dist/YAxesLabels-Dnnng49-.js.map +0 -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":"GeoHubCompareMaps.js","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","mapDiv","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.js","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","mapDiv","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,7 +1,7 @@
|
|
|
1
1
|
import { c as O, j as d } from "./index-CHPV5EwG-Curnpaqc.js";
|
|
2
2
|
import { j as x } from "./Typography-PxtFcnJb.js";
|
|
3
3
|
import { ButterflyChart as S } from "./ButterflyChart.js";
|
|
4
|
-
import { C as N } from "./index-
|
|
4
|
+
import { C as N } from "./index-Ceppbd8C.js";
|
|
5
5
|
import { DataTable as V } from "./DataTable.js";
|
|
6
6
|
import { DonutChart as H } from "./DonutChart.js";
|
|
7
7
|
import { HeatMap as A } from "./HeatMap.js";
|
|
@@ -1698,7 +1698,7 @@ function Xe(y) {
|
|
|
1698
1698
|
const w = p, u = M[s];
|
|
1699
1699
|
let f;
|
|
1700
1700
|
a[13] !== w || a[14] !== s ? (f = w(s), a[13] = w, a[14] = s, a[15] = f) : f = a[15];
|
|
1701
|
-
const T = f, k = `grow my-0 ${s !== "statCard" ? "mx-auto" : "mx-0"} flex flex-col
|
|
1701
|
+
const T = f, k = `grow my-0 ${s !== "statCard" ? "mx-auto" : "mx-0"} flex flex-col w-full ${s !== "unitChart" && s !== "statCard" ? "justify-center" : "justify-start"} ${e?.theme || "light"}`;
|
|
1702
1702
|
let D;
|
|
1703
1703
|
a[16] === Symbol.for("react.memo_cache_sentinel") ? (D = {
|
|
1704
1704
|
minHeight: "inherit"
|
|
@@ -1711,4 +1711,4 @@ function Xe(y) {
|
|
|
1711
1711
|
export {
|
|
1712
1712
|
Xe as G
|
|
1713
1713
|
};
|
|
1714
|
-
//# sourceMappingURL=GraphEl-
|
|
1714
|
+
//# sourceMappingURL=GraphEl-BZne2JIx.js.map
|