{"version":3,"file":"nivo-geo.mjs","sources":["../src/GeoGraticule.js","../src/GeoMapFeature.js","../src/hooks.js","../src/GeoMap.js","../src/ResponsiveGeoMap.js","../src/GeoMapCanvas.js","../src/ResponsiveGeoMapCanvas.js","../src/ChoroplethTooltip.js","../src/Choropleth.js","../src/ResponsiveChoropleth.js","../src/ChoroplethCanvas.js","../src/ResponsiveChoroplethCanvas.js","../src/props.js"],"sourcesContent":["import { memo } from 'react'\n\n/**\n * GeoGraticule.propTypes = {\n *     path: PropTypes.func.isRequired,\n *     graticule: PropTypes.func.isRequired,\n *     lineWidth: PropTypes.number.isRequired,\n *     lineColor: PropTypes.string.isRequired,\n * }\n */\nconst GeoGraticule = memo(({ path, graticule, lineWidth, lineColor }) => {\n    return <path fill=\"none\" strokeWidth={lineWidth} stroke={lineColor} d={path(graticule())} />\n})\n\nexport default GeoGraticule\n","import { memo } from 'react'\n\n/**\n * GeoMapFeature.propTypes = {\n *     feature: PropTypes.shape({\n *         id: PropTypes.string.isRequired,\n *         type: PropTypes.oneOf(['Feature']).isRequired,\n *         properties: PropTypes.object,\n *         geometry: PropTypes.object.isRequired,\n *     }).isRequired,\n *     path: PropTypes.func.isRequired,\n *\n *     fillColor: PropTypes.string.isRequired,\n *     borderWidth: PropTypes.number.isRequired,\n *     borderColor: PropTypes.string.isRequired,\n *\n *     onMouseEnter: PropTypes.func.isRequired,\n *     onMouseMove: PropTypes.func.isRequired,\n *     onMouseLeave: PropTypes.func.isRequired,\n *     onClick: PropTypes.func.isRequired,\n * }\n */\nconst GeoMapFeature = memo(\n    ({\n        feature,\n        path,\n        fillColor,\n        borderWidth,\n        borderColor,\n        onClick,\n        onMouseEnter,\n        onMouseMove,\n        onMouseLeave,\n    }) => {\n        return (\n            <path\n                key={feature.id}\n                fill={feature?.fill ?? fillColor}\n                strokeWidth={borderWidth}\n                stroke={borderColor}\n                strokeLinejoin=\"bevel\"\n                d={path(feature)}\n                onMouseEnter={event => onMouseEnter(feature, event)}\n                onMouseMove={event => onMouseMove(feature, event)}\n                onMouseLeave={event => onMouseLeave(feature, event)}\n                onClick={event => onClick(feature, event)}\n            />\n        )\n    }\n)\n\nexport default GeoMapFeature\n","import { useMemo } from 'react'\nimport isFunction from 'lodash/isFunction.js'\nimport get from 'lodash/get.js'\nimport { format } from 'd3-format'\nimport {\n    geoPath,\n    geoAzimuthalEqualArea,\n    geoAzimuthalEquidistant,\n    geoGnomonic,\n    geoOrthographic,\n    geoStereographic,\n    geoEqualEarth,\n    geoEquirectangular,\n    geoMercator,\n    geoTransverseMercator,\n    geoNaturalEarth1,\n    geoGraticule,\n} from 'd3-geo'\nimport { guessQuantizeColorScale } from '@nivo/core'\nimport { useTheme } from '@nivo/theming'\nimport { useInheritedColor } from '@nivo/colors'\nimport { useQuantizeColorScaleLegendData } from '@nivo/legends'\n\nexport const projectionById = {\n    azimuthalEqualArea: geoAzimuthalEqualArea,\n    azimuthalEquidistant: geoAzimuthalEquidistant,\n    gnomonic: geoGnomonic,\n    orthographic: geoOrthographic,\n    stereographic: geoStereographic,\n    equalEarth: geoEqualEarth,\n    equirectangular: geoEquirectangular,\n    mercator: geoMercator,\n    transverseMercator: geoTransverseMercator,\n    naturalEarth1: geoNaturalEarth1,\n}\n\nexport const useGeoMap = ({\n    width,\n    height,\n    projectionType,\n    projectionScale,\n    projectionTranslation,\n    projectionRotation,\n    fillColor,\n    borderWidth,\n    borderColor,\n}) => {\n    const [translateX, translateY] = projectionTranslation\n    const [rotateLambda, rotatePhi, rotateGamma] = projectionRotation\n\n    const projection = useMemo(() => {\n        return projectionById[projectionType]()\n            .scale(projectionScale)\n            .translate([width * translateX, height * translateY])\n            .rotate([rotateLambda, rotatePhi, rotateGamma])\n    }, [\n        width,\n        height,\n        projectionType,\n        projectionScale,\n        translateX,\n        translateY,\n        rotateLambda,\n        rotatePhi,\n        rotateGamma,\n    ])\n    const path = useMemo(() => geoPath(projection), [projection])\n    const graticule = useMemo(() => geoGraticule(), [])\n\n    const theme = useTheme()\n    const getBorderWidth = useMemo(\n        () => (typeof borderWidth === 'function' ? borderWidth : () => borderWidth),\n        [borderWidth]\n    )\n    const getBorderColor = useInheritedColor(borderColor, theme)\n    const getFillColor = useMemo(\n        () => (typeof fillColor === 'function' ? fillColor : () => fillColor),\n        [fillColor]\n    )\n\n    return {\n        projection,\n        path,\n        graticule,\n        getBorderWidth,\n        getBorderColor,\n        getFillColor,\n    }\n}\n\nexport const useChoropleth = ({\n    features,\n    data,\n    match,\n    label,\n    value,\n    valueFormat,\n    colors,\n    unknownColor,\n    domain,\n}) => {\n    const findMatchingDatum = useMemo(() => {\n        if (isFunction(match)) return match\n        return (feature, datum) => {\n            const featureKey = get(feature, match)\n            const datumKey = get(datum, match)\n\n            return featureKey && featureKey === datumKey\n        }\n    }, [match])\n    const getLabel = useMemo(\n        () => (isFunction(label) ? label : datum => get(datum, label)),\n        [label]\n    )\n    const getValue = useMemo(\n        () => (isFunction(value) ? value : datum => get(datum, value)),\n        [value]\n    )\n    const valueFormatter = useMemo(() => {\n        if (valueFormat === undefined) return d => d\n        if (isFunction(valueFormat)) return valueFormat\n        return format(valueFormat)\n    }, [valueFormat])\n\n    const colorScale = useMemo(\n        () => guessQuantizeColorScale(colors).domain(domain),\n        [colors, domain]\n    )\n    const getFillColor = useMemo(() => {\n        return feature => {\n            if (feature.value === undefined) return unknownColor\n            return colorScale(feature.value)\n        }\n    }, [colorScale, unknownColor])\n\n    const boundFeatures = useMemo(\n        () =>\n            features.map(feature => {\n                const datum = data.find(datum => findMatchingDatum(feature, datum))\n                const datumValue = getValue(datum)\n\n                if (datum) {\n                    const featureWithData = {\n                        ...feature,\n                        data: datum,\n                        value: datumValue,\n                        formattedValue: valueFormatter(datumValue),\n                    }\n                    featureWithData.color = getFillColor(featureWithData)\n                    featureWithData.label = getLabel(featureWithData)\n\n                    return featureWithData\n                }\n\n                return feature\n            }),\n        [features, data, findMatchingDatum, getValue, valueFormatter, getFillColor, getLabel]\n    )\n\n    const legendData = useQuantizeColorScaleLegendData({\n        scale: colorScale,\n        valueFormat: valueFormatter,\n    })\n\n    return {\n        colorScale,\n        getFillColor,\n        boundFeatures,\n        valueFormatter,\n        legendData,\n    }\n}\n","import { Fragment, useCallback, memo } from 'react'\nimport { SvgWrapper, withContainer, useDimensions } from '@nivo/core'\nimport { useTheme } from '@nivo/theming'\nimport { useTooltip } from '@nivo/tooltip'\nimport GeoGraticule from './GeoGraticule'\nimport GeoMapFeature from './GeoMapFeature'\nimport { useGeoMap } from './hooks'\n\nconst GeoMap = memo(props => {\n    const {\n        width,\n        height,\n        margin: partialMargin,\n        features,\n        layers = ['graticule', 'features'],\n        projectionType = 'mercator',\n        projectionScale = 100,\n        projectionTranslation = [0.5, 0.5],\n        projectionRotation = [0, 0, 0],\n        fillColor = '#dddddd',\n        borderWidth = 0,\n        borderColor = '#000000',\n        enableGraticule = false,\n        graticuleLineWidth = 0.5,\n        graticuleLineColor = '#999999',\n        isInteractive = true,\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        onClick = () => {},\n        tooltip: Tooltip,\n        role = 'img',\n    } = props\n    const { margin, outerWidth, outerHeight } = useDimensions(width, height, partialMargin)\n    const { graticule, path, getFillColor, getBorderWidth, getBorderColor } = useGeoMap({\n        width,\n        height,\n        projectionType,\n        projectionScale,\n        projectionTranslation,\n        projectionRotation,\n        fillColor,\n        borderWidth,\n        borderColor,\n    })\n\n    const theme = useTheme()\n\n    const { showTooltipFromEvent, hideTooltip } = useTooltip()\n    const handleClick = useCallback(\n        (feature, event) => isInteractive && onClick && onClick(feature, event),\n        [isInteractive, onClick]\n    )\n    const handleMouseEnter = useCallback(\n        (feature, event) =>\n            isInteractive && Tooltip && showTooltipFromEvent(<Tooltip feature={feature} />, event),\n        [isInteractive, showTooltipFromEvent, Tooltip]\n    )\n    const handleMouseMove = useCallback(\n        (feature, event) =>\n            isInteractive && Tooltip && showTooltipFromEvent(<Tooltip feature={feature} />, event),\n        [isInteractive, showTooltipFromEvent, Tooltip]\n    )\n    const handleMouseLeave = useCallback(\n        () => isInteractive && hideTooltip(),\n        [isInteractive, hideTooltip]\n    )\n\n    return (\n        <SvgWrapper\n            width={outerWidth}\n            height={outerHeight}\n            margin={margin}\n            theme={theme}\n            role={role}\n        >\n            {layers.map((layer, i) => {\n                if (layer === 'graticule') {\n                    if (enableGraticule !== true) return null\n\n                    return (\n                        <GeoGraticule\n                            key=\"graticule\"\n                            path={path}\n                            graticule={graticule}\n                            lineWidth={graticuleLineWidth}\n                            lineColor={graticuleLineColor}\n                        />\n                    )\n                }\n                if (layer === 'features') {\n                    return (\n                        <Fragment key=\"features\">\n                            {features.map(feature => (\n                                <GeoMapFeature\n                                    key={feature.id}\n                                    feature={feature}\n                                    path={path}\n                                    fillColor={getFillColor(feature)}\n                                    borderWidth={getBorderWidth(feature)}\n                                    borderColor={getBorderColor(feature)}\n                                    onMouseEnter={handleMouseEnter}\n                                    onMouseMove={handleMouseMove}\n                                    onMouseLeave={handleMouseLeave}\n                                    onClick={handleClick}\n                                />\n                            ))}\n                        </Fragment>\n                    )\n                }\n\n                return <Fragment key={i}>{layer(props)}</Fragment>\n            })}\n        </SvgWrapper>\n    )\n})\n\nexport default withContainer(GeoMap)\n","/*\n * This file is part of the nivo project.\n *\n * Copyright 2016-present, Raphaël Benitte.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nimport { ResponsiveWrapper } from '@nivo/core'\nimport GeoMap from './GeoMap'\n\nconst ResponsiveGeoMap = props => (\n    <ResponsiveWrapper>\n        {({ width, height }) => <GeoMap width={width} height={height} {...props} />}\n    </ResponsiveWrapper>\n)\n\nexport default ResponsiveGeoMap\n","import { memo, useRef, useEffect, useCallback } from 'react'\nimport { geoContains } from 'd3-geo'\nimport { getRelativeCursor, withContainer, useDimensions } from '@nivo/core'\nimport { useTheme } from '@nivo/theming'\nimport { useTooltip } from '@nivo/tooltip'\nimport { useGeoMap } from './hooks'\n\nconst getFeatureFromMouseEvent = (event, el, features, projection) => {\n    const [x, y] = getRelativeCursor(el, event)\n\n    return features.find(f => geoContains(f, projection.invert([x, y])))\n}\n\nconst GeoMapCanvas = memo(props => {\n    const {\n        width,\n        height,\n        margin: partialMargin,\n        pixelRatio = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1,\n        features,\n        layers,\n\n        projectionType = 'mercator',\n        projectionScale = 100,\n        projectionTranslation = [0.5, 0.5],\n        projectionRotation = [0, 0, 0],\n\n        fillColor = '#dddddd',\n        borderWidth = 0,\n        borderColor = '#000000',\n\n        enableGraticule = false,\n        graticuleLineWidth = 0.5,\n        graticuleLineColor = '#999999',\n\n        isInteractive = true,\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        onClick = () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        onMouseMove = () => {},\n        tooltip: Tooltip,\n    } = props\n\n    const canvasEl = useRef(null)\n    const theme = useTheme()\n    const { margin, outerWidth, outerHeight } = useDimensions(width, height, partialMargin)\n    const { projection, graticule, path, getFillColor, getBorderWidth, getBorderColor } = useGeoMap(\n        {\n            width,\n            height,\n            projectionType,\n            projectionScale,\n            projectionTranslation,\n            projectionRotation,\n            fillColor,\n            borderWidth,\n            borderColor,\n        }\n    )\n\n    useEffect(() => {\n        if (!canvasEl) return\n\n        canvasEl.current.width = outerWidth * pixelRatio\n        canvasEl.current.height = outerHeight * pixelRatio\n\n        const ctx = canvasEl.current.getContext('2d')\n\n        ctx.scale(pixelRatio, pixelRatio)\n\n        ctx.fillStyle = theme.background\n        ctx.fillRect(0, 0, outerWidth, outerHeight)\n        ctx.translate(margin.left, margin.top)\n\n        path.context(ctx)\n\n        layers.forEach(layer => {\n            if (layer === 'graticule') {\n                if (enableGraticule === true) {\n                    ctx.lineWidth = graticuleLineWidth\n                    ctx.strokeStyle = graticuleLineColor\n                    ctx.beginPath()\n                    path(graticule())\n                    ctx.stroke()\n                }\n            } else if (layer === 'features') {\n                features.forEach(feature => {\n                    ctx.beginPath()\n                    path(feature)\n                    ctx.fillStyle = getFillColor(feature)\n                    ctx.fill()\n\n                    const borderWidth = getBorderWidth(feature)\n                    if (borderWidth > 0) {\n                        ctx.strokeStyle = getBorderColor(feature)\n                        ctx.lineWidth = borderWidth\n                        ctx.stroke()\n                    }\n                })\n            } else {\n                layer(ctx, props)\n            }\n        })\n    }, [\n        canvasEl,\n        outerWidth,\n        outerHeight,\n        margin,\n        pixelRatio,\n        theme,\n        path,\n        graticule,\n        getFillColor,\n        getBorderWidth,\n        getBorderColor,\n        features,\n        layers,\n        enableGraticule,\n        graticuleLineColor,\n        graticuleLineWidth,\n        props,\n    ])\n\n    const { showTooltipFromEvent, hideTooltip } = useTooltip()\n    const handleMouseMove = useCallback(\n        event => {\n            if (!isInteractive || !Tooltip) return\n\n            const feature = getFeatureFromMouseEvent(event, canvasEl.current, features, projection)\n            if (feature) {\n                showTooltipFromEvent(<Tooltip feature={feature} />, event)\n            } else {\n                hideTooltip()\n            }\n            onMouseMove?.(feature || null, event)\n        },\n        [\n            showTooltipFromEvent,\n            hideTooltip,\n            isInteractive,\n            Tooltip,\n            canvasEl,\n            features,\n            projection,\n            onMouseMove,\n        ]\n    )\n    const handleMouseLeave = useCallback(\n        () => isInteractive && hideTooltip(),\n        [isInteractive, hideTooltip]\n    )\n    const handleClick = useCallback(\n        event => {\n            if (!isInteractive || !onClick) return\n\n            const feature = getFeatureFromMouseEvent(event, canvasEl.current, features, projection)\n            if (feature) {\n                onClick(feature, event)\n            }\n        },\n        [isInteractive, canvasEl, features, projection, onClick]\n    )\n\n    return (\n        <canvas\n            ref={canvasEl}\n            width={outerWidth * pixelRatio}\n            height={outerHeight * pixelRatio}\n            style={{\n                width: outerWidth,\n                height: outerHeight,\n                cursor: isInteractive ? 'auto' : 'normal',\n            }}\n            onMouseMove={handleMouseMove}\n            onMouseLeave={handleMouseLeave}\n            onClick={handleClick}\n        />\n    )\n})\n\nexport default withContainer(GeoMapCanvas)\n","/*\n * This file is part of the nivo project.\n *\n * Copyright 2016-present, Raphaël Benitte.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nimport { ResponsiveWrapper } from '@nivo/core'\nimport GeoMapCanvas from './GeoMapCanvas'\n\nconst ResponsiveGeoMapCanvas = props => (\n    <ResponsiveWrapper>\n        {({ width, height }) => <GeoMapCanvas width={width} height={height} {...props} />}\n    </ResponsiveWrapper>\n)\n\nexport default ResponsiveGeoMapCanvas\n","import { memo } from 'react'\nimport { BasicTooltip } from '@nivo/tooltip'\n\nconst ChoroplethTooltip = memo(({ feature }) => {\n    if (feature.data === undefined) return null\n\n    return (\n        <BasicTooltip\n            id={feature.label}\n            color={feature.color}\n            enableChip={true}\n            value={feature.formattedValue}\n        />\n    )\n})\n\nexport default ChoroplethTooltip\n","import { memo, Fragment, useCallback } from 'react'\nimport { SvgWrapper, withContainer, useDimensions, bindDefs } from '@nivo/core'\nimport { useTheme } from '@nivo/theming'\nimport { BoxLegendSvg } from '@nivo/legends'\nimport { useTooltip } from '@nivo/tooltip'\nimport GeoGraticule from './GeoGraticule'\nimport GeoMapFeature from './GeoMapFeature'\nimport { useGeoMap, useChoropleth } from './hooks'\nimport ChoroplethTooltip from './ChoroplethTooltip'\n\nconst Choropleth = memo(props => {\n    const {\n        width,\n        height,\n        margin: partialMargin,\n        features,\n        data,\n        match = 'id',\n        label = 'id',\n        value = 'value',\n        valueFormat,\n        projectionType = 'mercator',\n        projectionScale = 100,\n        projectionTranslation = [0.5, 0.5],\n        projectionRotation = [0, 0, 0],\n        colors = 'PuBuGn',\n        domain,\n        unknownColor = '#999',\n        borderWidth = 0,\n        borderColor = '#000000',\n        enableGraticule = false,\n        graticuleLineWidth = 0.5,\n        graticuleLineColor = '#999999',\n        layers = ['graticule', 'features', 'legends'],\n        legends = [],\n        isInteractive = true,\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        onClick = () => {},\n        tooltip: Tooltip = ChoroplethTooltip,\n        role = 'img',\n        defs = [],\n        fill = [],\n    } = props\n\n    const { margin, outerWidth, outerHeight } = useDimensions(width, height, partialMargin)\n    const { graticule, path, getBorderWidth, getBorderColor } = useGeoMap({\n        width,\n        height,\n        projectionType,\n        projectionScale,\n        projectionTranslation,\n        projectionRotation,\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        fillColor: () => {},\n        borderWidth,\n        borderColor,\n    })\n    const { getFillColor, boundFeatures, legendData } = useChoropleth({\n        features,\n        data,\n        match,\n        label,\n        value,\n        valueFormat,\n        colors,\n        unknownColor,\n        domain,\n    })\n\n    const theme = useTheme()\n\n    const boundDefs = bindDefs(defs, boundFeatures, fill, {\n        dataKey: 'data',\n        targetKey: 'fill',\n    })\n\n    const { showTooltipFromEvent, hideTooltip } = useTooltip()\n    const handleClick = useCallback(\n        (feature, event) => isInteractive && onClick && onClick(feature, event),\n        [isInteractive, onClick]\n    )\n    const handleMouseEnter = useCallback(\n        (feature, event) =>\n            isInteractive && Tooltip && showTooltipFromEvent(<Tooltip feature={feature} />, event),\n        [isInteractive, showTooltipFromEvent, Tooltip]\n    )\n    const handleMouseMove = useCallback(\n        (feature, event) =>\n            isInteractive && Tooltip && showTooltipFromEvent(<Tooltip feature={feature} />, event),\n        [isInteractive, showTooltipFromEvent, Tooltip]\n    )\n    const handleMouseLeave = useCallback(\n        () => isInteractive && hideTooltip(),\n        [isInteractive, hideTooltip]\n    )\n\n    return (\n        <SvgWrapper\n            width={outerWidth}\n            height={outerHeight}\n            margin={margin}\n            theme={theme}\n            defs={boundDefs}\n            role={role}\n        >\n            {layers.map((layer, i) => {\n                if (layer === 'graticule') {\n                    if (enableGraticule !== true) return null\n\n                    return (\n                        <GeoGraticule\n                            key=\"graticule\"\n                            path={path}\n                            graticule={graticule}\n                            lineWidth={graticuleLineWidth}\n                            lineColor={graticuleLineColor}\n                        />\n                    )\n                }\n                if (layer === 'features') {\n                    return (\n                        <Fragment key=\"features\">\n                            {boundFeatures.map(feature => (\n                                <GeoMapFeature\n                                    key={feature.id}\n                                    feature={feature}\n                                    path={path}\n                                    fillColor={getFillColor(feature)}\n                                    borderWidth={getBorderWidth(feature)}\n                                    borderColor={getBorderColor(feature)}\n                                    onMouseEnter={handleMouseEnter}\n                                    onMouseMove={handleMouseMove}\n                                    onMouseLeave={handleMouseLeave}\n                                    onClick={handleClick}\n                                />\n                            ))}\n                        </Fragment>\n                    )\n                }\n                if (layer === 'legends') {\n                    return legends.map((legend, i) => {\n                        return (\n                            <BoxLegendSvg\n                                key={i}\n                                containerWidth={width}\n                                containerHeight={height}\n                                data={legendData}\n                                {...legend}\n                            />\n                        )\n                    })\n                }\n\n                return <Fragment key={i}>{layer({})}</Fragment>\n            })}\n        </SvgWrapper>\n    )\n})\n\nexport default withContainer(Choropleth)\n","/*\n * This file is part of the nivo project.\n *\n * Copyright 2016-present, Raphaël Benitte.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nimport { ResponsiveWrapper } from '@nivo/core'\nimport Choropleth from './Choropleth'\n\nconst ResponsiveChoropleth = props => (\n    <ResponsiveWrapper>\n        {({ width, height }) => <Choropleth width={width} height={height} {...props} />}\n    </ResponsiveWrapper>\n)\n\nexport default ResponsiveChoropleth\n","import { memo, useRef, useEffect, useCallback } from 'react'\nimport { geoContains } from 'd3-geo'\nimport { getRelativeCursor, withContainer, useDimensions } from '@nivo/core'\nimport { useTheme } from '@nivo/theming'\nimport { renderLegendToCanvas } from '@nivo/legends'\nimport { useTooltip } from '@nivo/tooltip'\nimport { useGeoMap, useChoropleth } from './hooks'\nimport ChoroplethTooltip from './ChoroplethTooltip'\n\nconst getFeatureFromMouseEvent = (event, el, features, projection) => {\n    const [x, y] = getRelativeCursor(el, event)\n\n    return features.find(f => geoContains(f, projection.invert([x, y])))\n}\n\nconst ChoroplethCanvas = memo(props => {\n    const {\n        width,\n        height,\n        margin: partialMargin,\n        pixelRatio = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1,\n        features,\n        data,\n        match = 'id',\n        label = 'id',\n        value = 'value',\n        valueFormat,\n        projectionType = 'mercator',\n        projectionScale = 100,\n        projectionTranslation = [0.5, 0.5],\n        projectionRotation = [0, 0, 0],\n        colors = 'PuBuGn',\n        domain,\n        unknownColor = '#999',\n        borderWidth = 0,\n        borderColor = '#000000',\n        enableGraticule = false,\n        graticuleLineWidth = 0.5,\n        graticuleLineColor = '#999999',\n        layers = ['graticule', 'features', 'legends'],\n        legends = [],\n        isInteractive = true,\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        onClick = () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        onMouseMove = () => {},\n        tooltip: Tooltip = ChoroplethTooltip,\n    } = props\n    const canvasEl = useRef(null)\n    const theme = useTheme()\n    const { margin, outerWidth, outerHeight } = useDimensions(width, height, partialMargin)\n    const { projection, graticule, path, getBorderWidth, getBorderColor } = useGeoMap({\n        width,\n        height,\n        projectionType,\n        projectionScale,\n        projectionTranslation,\n        projectionRotation,\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        fillColor: () => {},\n        borderWidth,\n        borderColor,\n    })\n    const { getFillColor, boundFeatures, legendData } = useChoropleth({\n        features,\n        data,\n        match,\n        label,\n        value,\n        valueFormat,\n        colors,\n        unknownColor,\n        domain,\n    })\n\n    useEffect(() => {\n        if (!canvasEl) return\n\n        canvasEl.current.width = outerWidth * pixelRatio\n        canvasEl.current.height = outerHeight * pixelRatio\n\n        const ctx = canvasEl.current.getContext('2d')\n\n        ctx.scale(pixelRatio, pixelRatio)\n\n        ctx.fillStyle = theme.background\n        ctx.fillRect(0, 0, outerWidth, outerHeight)\n        ctx.translate(margin.left, margin.top)\n\n        path.context(ctx)\n\n        layers.forEach(layer => {\n            if (layer === 'graticule') {\n                if (enableGraticule === true) {\n                    ctx.lineWidth = graticuleLineWidth\n                    ctx.strokeStyle = graticuleLineColor\n                    ctx.beginPath()\n                    path(graticule())\n                    ctx.stroke()\n                }\n            } else if (layer === 'features') {\n                boundFeatures.forEach(feature => {\n                    ctx.beginPath()\n                    path(feature)\n                    ctx.fillStyle = getFillColor(feature)\n                    ctx.fill()\n\n                    const borderWidth = getBorderWidth(feature)\n                    if (borderWidth > 0) {\n                        ctx.strokeStyle = getBorderColor(feature)\n                        ctx.lineWidth = borderWidth\n                        ctx.stroke()\n                    }\n                })\n            } else if (layer === 'legends') {\n                legends.forEach(legend => {\n                    renderLegendToCanvas(ctx, {\n                        ...legend,\n                        data: legendData,\n                        containerWidth: width,\n                        containerHeight: height,\n                        theme,\n                    })\n                })\n            } else {\n                // layer(ctx, {})\n            }\n        })\n    }, [\n        canvasEl,\n        width,\n        outerWidth,\n        height,\n        outerHeight,\n        margin,\n        pixelRatio,\n        theme,\n        path,\n        graticule,\n        getFillColor,\n        getBorderWidth,\n        getBorderColor,\n        boundFeatures,\n        legends,\n        legendData,\n        layers,\n        enableGraticule,\n        graticuleLineColor,\n        graticuleLineWidth,\n    ])\n\n    const { showTooltipFromEvent, hideTooltip } = useTooltip()\n    const handleMouseMove = useCallback(\n        event => {\n            if (!isInteractive || !Tooltip) return\n\n            const feature = getFeatureFromMouseEvent(\n                event,\n                canvasEl.current,\n                boundFeatures,\n                projection\n            )\n            if (feature) {\n                showTooltipFromEvent(<Tooltip feature={feature} />, event)\n            } else {\n                hideTooltip()\n            }\n            onMouseMove?.(feature || null, event)\n        },\n        [\n            showTooltipFromEvent,\n            hideTooltip,\n            isInteractive,\n            Tooltip,\n            canvasEl,\n            boundFeatures,\n            projection,\n            onMouseMove,\n        ]\n    )\n    const handleMouseLeave = useCallback(\n        () => isInteractive && hideTooltip(),\n        [isInteractive, hideTooltip]\n    )\n    const handleClick = useCallback(\n        event => {\n            if (!isInteractive || !onClick) return\n\n            const feature = getFeatureFromMouseEvent(\n                event,\n                canvasEl.current,\n                boundFeatures,\n                projection\n            )\n            if (feature) {\n                onClick(feature, event)\n            }\n        },\n        [isInteractive, canvasEl, boundFeatures, projection, onClick]\n    )\n\n    return (\n        <canvas\n            ref={canvasEl}\n            width={outerWidth * pixelRatio}\n            height={outerHeight * pixelRatio}\n            style={{\n                width: outerWidth,\n                height: outerHeight,\n                cursor: isInteractive ? 'auto' : 'normal',\n            }}\n            onMouseMove={handleMouseMove}\n            onMouseLeave={handleMouseLeave}\n            onClick={handleClick}\n        />\n    )\n})\n\nexport default withContainer(ChoroplethCanvas)\n","/*\n * This file is part of the nivo project.\n *\n * Copyright 2016-present, Raphaël Benitte.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nimport { ResponsiveWrapper } from '@nivo/core'\nimport ChoroplethCanvas from './ChoroplethCanvas'\n\nconst ResponsiveChoroplethCanvas = props => (\n    <ResponsiveWrapper>\n        {({ width, height }) => <ChoroplethCanvas width={width} height={height} {...props} />}\n    </ResponsiveWrapper>\n)\n\nexport default ResponsiveChoroplethCanvas\n","import ChoroplethTooltip from './ChoroplethTooltip'\n\nconst commonDefaultProps = {\n    projectionType: 'mercator',\n    projectionScale: 100,\n    projectionTranslation: [0.5, 0.5],\n    projectionRotation: [0, 0, 0],\n\n    enableGraticule: false,\n    graticuleLineWidth: 0.5,\n    graticuleLineColor: '#999999',\n\n    fillColor: '#dddddd',\n    borderWidth: 0,\n    borderColor: '#000000',\n\n    isInteractive: true,\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    onMouseEnter: () => {},\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    onMouseLeave: () => {},\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    onMouseMove: () => {},\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    onClick: () => {},\n\n    layers: ['graticule', 'features'],\n    legends: [],\n\n    fill: [],\n    defs: [],\n}\n\nexport const GeoMapDefaultProps = {\n    ...commonDefaultProps,\n    role: 'img',\n}\n\nexport const GeoMapCanvasDefaultProps = {\n    ...commonDefaultProps,\n    pixelRatio: typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1,\n}\n\nconst commonChoroplethDefaultProps = {\n    match: 'id',\n    label: 'id',\n    value: 'value',\n    colors: 'PuBuGn',\n    unknownColor: '#999',\n    tooltip: ChoroplethTooltip,\n    layers: ['graticule', 'features', 'legends'],\n}\n\nexport const ChoroplethDefaultProps = {\n    ...GeoMapDefaultProps,\n    ...commonChoroplethDefaultProps,\n    role: 'img',\n}\n\nexport const ChoroplethCanvasDefaultProps = {\n    ...GeoMapCanvasDefaultProps,\n    ...commonChoroplethDefaultProps,\n}\n"],"names":["GeoGraticule","memo","_ref","path","graticule","lineWidth","lineColor","_jsx","fill","strokeWidth","stroke","d","GeoMapFeature","_feature$fill","feature","fillColor","borderWidth","borderColor","onClick","onMouseEnter","onMouseMove","onMouseLeave","strokeLinejoin","event","id","projectionById","azimuthalEqualArea","geoAzimuthalEqualArea","azimuthalEquidistant","geoAzimuthalEquidistant","gnomonic","geoGnomonic","orthographic","geoOrthographic","stereographic","geoStereographic","equalEarth","geoEqualEarth","equirectangular","geoEquirectangular","mercator","geoMercator","transverseMercator","geoTransverseMercator","naturalEarth1","geoNaturalEarth1","useGeoMap","width","height","projectionType","projectionScale","projectionTranslation","projectionRotation","translateX","translateY","rotateLambda","rotatePhi","rotateGamma","projection","useMemo","scale","translate","rotate","geoPath","geoGraticule","theme","useTheme","getBorderWidth","getBorderColor","useInheritedColor","getFillColor","useChoropleth","_ref2","features","data","match","label","value","valueFormat","colors","unknownColor","domain","findMatchingDatum","isFunction","datum","featureKey","get","datumKey","getLabel","getValue","valueFormatter","undefined","format","colorScale","guessQuantizeColorScale","boundFeatures","map","find","datumValue","featureWithData","_extends","formattedValue","color","legendData","useQuantizeColorScaleLegendData","withContainer","props","partialMargin","margin","_props$layers","layers","_props$projectionType","_props$projectionScal","_props$projectionTran","_props$projectionRota","_props$fillColor","_props$borderWidth","_props$borderColor","_props$enableGraticul","enableGraticule","_props$graticuleLineW","graticuleLineWidth","_props$graticuleLineC","graticuleLineColor","_props$isInteractive","isInteractive","_props$onClick","Tooltip","tooltip","_props$role","role","_useDimensions","useDimensions","outerWidth","outerHeight","_useGeoMap","_useTooltip","useTooltip","showTooltipFromEvent","hideTooltip","handleClick","useCallback","handleMouseEnter","handleMouseMove","handleMouseLeave","SvgWrapper","children","layer","i","Fragment","ResponsiveGeoMap","ResponsiveWrapper","GeoMap","getFeatureFromMouseEvent","el","_getRelativeCursor","getRelativeCursor","x","y","f","geoContains","invert","_props$pixelRatio","pixelRatio","window","devicePixelRatio","_props$onMouseMove","canvasEl","useRef","useEffect","current","ctx","getContext","fillStyle","background","fillRect","left","top","context","forEach","strokeStyle","beginPath","ref","style","cursor","ResponsiveGeoMapCanvas","GeoMapCanvas","ChoroplethTooltip","BasicTooltip","enableChip","_props$match","_props$label","_props$value","_props$colors","_props$unknownColor","_props$legends","legends","_props$tooltip","_props$defs","defs","_props$fill","_useChoropleth","boundDefs","bindDefs","dataKey","targetKey","legend","BoxLegendSvg","containerWidth","containerHeight","ResponsiveChoropleth","Choropleth","renderLegendToCanvas","ResponsiveChoroplethCanvas","ChoroplethCanvas","commonDefaultProps","GeoMapDefaultProps","GeoMapCanvasDefaultProps","commonChoroplethDefaultProps","ChoroplethDefaultProps","ChoroplethCanvasDefaultProps"],"mappings":"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"}