{"version":3,"file":"nivo-radial-bar.mjs","sources":["../src/RadialBarTooltip.tsx","../src/props.ts","../src/RadialBarArcs.tsx","../src/RadialBarTracks.tsx","../src/RadialBar.tsx","../src/hooks.ts","../src/ResponsiveRadialBar.tsx"],"sourcesContent":["import { BasicTooltip } from '@nivo/tooltip'\nimport { RadialBarDatum, RadialBarTooltipProps } from './types'\n\nexport const RadialBarTooltip = <D extends RadialBarDatum>({ bar }: RadialBarTooltipProps<D>) => {\n    return (\n        <BasicTooltip\n            enableChip\n            id={\n                <span>\n                    {bar.category} - {bar.groupId}\n                </span>\n            }\n            value={bar.formattedValue}\n            color={bar.color}\n        />\n    )\n}\n","import { InheritedColorConfig } from '@nivo/colors'\nimport { ComputedBar, RadialBarLayerId } from './types'\nimport { RadialBarTooltip } from './RadialBarTooltip'\n\nexport const commonDefaultProps = {\n    maxValue: 'auto' as const,\n\n    layers: ['grid', 'tracks', 'bars', 'labels', 'legends'] as RadialBarLayerId[],\n\n    startAngle: 0,\n    endAngle: 270,\n    innerRadius: 0.3,\n    padding: 0.2,\n    padAngle: 0,\n    cornerRadius: 0,\n\n    enableTracks: true,\n    tracksColor: 'rgba(0, 0, 0, .15)',\n\n    enableRadialGrid: true,\n    enableCircularGrid: true,\n    radialAxisStart: {},\n    radialAxisEnd: null,\n    circularAxisInner: null,\n    circularAxisOuter: {},\n\n    colors: { scheme: 'nivo' as const },\n    borderWidth: 0,\n    borderColor: { from: 'color', modifiers: [['darker', 1]] } as InheritedColorConfig<ComputedBar>,\n\n    enableLabels: false,\n    label: 'formattedValue',\n    labelsSkipAngle: 10,\n    labelsSkipRadius: 0,\n    labelsRadiusOffset: 0.5,\n    labelsTextColor: { theme: 'labels.text.fill' },\n\n    isInteractive: true,\n    tooltip: RadialBarTooltip,\n\n    legends: [],\n\n    defs: [],\n    fill: [],\n\n    animate: true,\n    motionConfig: 'gentle' as const,\n    transitionMode: 'centerRadius' as const,\n\n    renderWrapper: true,\n}\n\nexport const svgDefaultProps = {\n    ...commonDefaultProps,\n}\n","import { createElement, MouseEvent, useCallback } from 'react'\nimport { ArcsLayer, ArcGenerator } from '@nivo/arcs'\nimport { useTooltip } from '@nivo/tooltip'\nimport { ComputedBar, RadialBarCommonProps, RadialBarDatum } from './types'\n\ninterface RadialBarArcsProps<D extends RadialBarDatum> {\n    center: [number, number]\n    bars: ComputedBar<D>[]\n    borderWidth: RadialBarCommonProps<D>['borderWidth']\n    borderColor: RadialBarCommonProps<D>['borderColor']\n    arcGenerator: ArcGenerator\n    isInteractive: RadialBarCommonProps<D>['isInteractive']\n    tooltip: RadialBarCommonProps<D>['tooltip']\n    onClick?: RadialBarCommonProps<D>['onClick']\n    onMouseEnter?: RadialBarCommonProps<D>['onMouseEnter']\n    onMouseMove?: RadialBarCommonProps<D>['onMouseMove']\n    onMouseLeave?: RadialBarCommonProps<D>['onMouseLeave']\n    transitionMode: RadialBarCommonProps<D>['transitionMode']\n}\n\nexport const RadialBarArcs = <D extends RadialBarDatum>({\n    center,\n    bars,\n    borderWidth,\n    borderColor,\n    arcGenerator,\n    isInteractive,\n    tooltip,\n    onClick,\n    onMouseEnter,\n    onMouseMove,\n    onMouseLeave,\n    transitionMode,\n}: RadialBarArcsProps<D>) => {\n    const { showTooltipFromEvent, hideTooltip } = useTooltip()\n\n    const handleClick = useCallback(\n        (bar: ComputedBar<D>, event: MouseEvent) => {\n            onClick?.(bar, event)\n        },\n        [onClick]\n    )\n\n    const handleMouseEnter = useCallback(\n        (bar: ComputedBar<D>, event: MouseEvent) => {\n            showTooltipFromEvent(createElement(tooltip, { bar }), event)\n            onMouseEnter?.(bar, event)\n        },\n        [showTooltipFromEvent, tooltip, onMouseEnter]\n    )\n\n    const handleMouseMove = useCallback(\n        (bar: ComputedBar<D>, event: MouseEvent) => {\n            showTooltipFromEvent(createElement(tooltip, { bar }), event)\n            onMouseMove?.(bar, event)\n        },\n        [showTooltipFromEvent, tooltip, onMouseMove]\n    )\n\n    const handleMouseLeave = useCallback(\n        (bar: ComputedBar<D>, event: MouseEvent) => {\n            hideTooltip()\n            onMouseLeave?.(bar, event)\n        },\n        [hideTooltip, onMouseLeave]\n    )\n\n    return (\n        <ArcsLayer<ComputedBar<D>>\n            center={center}\n            data={bars}\n            arcGenerator={arcGenerator}\n            borderWidth={borderWidth}\n            borderColor={borderColor}\n            transitionMode={transitionMode}\n            onClick={isInteractive ? handleClick : undefined}\n            onMouseEnter={isInteractive ? handleMouseEnter : undefined}\n            onMouseMove={isInteractive ? handleMouseMove : undefined}\n            onMouseLeave={isInteractive ? handleMouseLeave : undefined}\n        />\n    )\n}\n","import { ArcGenerator, ArcsLayer, ArcTransitionMode } from '@nivo/arcs'\nimport { RadialBarTrackDatum } from './types'\n\ninterface RadialBarTracksProps {\n    center: [number, number]\n    tracks: RadialBarTrackDatum[]\n    arcGenerator: ArcGenerator\n    transitionMode: ArcTransitionMode\n}\n\nexport const RadialBarTracks = ({\n    center,\n    tracks,\n    arcGenerator,\n    transitionMode,\n}: RadialBarTracksProps) => {\n    return (\n        <ArcsLayer<RadialBarTrackDatum>\n            center={center}\n            data={tracks}\n            arcGenerator={arcGenerator}\n            borderWidth={0}\n            borderColor=\"none\"\n            transitionMode={transitionMode}\n        />\n    )\n}\n","import { createElement, Fragment, ReactNode, forwardRef, Ref, ReactElement } from 'react'\nimport {\n    Container,\n    useDimensions,\n    SvgWrapper,\n    clampArc,\n    // @ts-expect-error no types\n    bindDefs,\n    WithChartRef,\n} from '@nivo/core'\n\nimport { ArcLabelsLayer } from '@nivo/arcs'\nimport { BoxLegendSvg } from '@nivo/legends'\nimport { PolarGrid, RadialAxis, CircularAxis } from '@nivo/polar-axes'\nimport { RadialBarLayerId, RadialBarSvgProps, ComputedBar, RadialBarDatum } from './types'\nimport { svgDefaultProps } from './props'\nimport { useRadialBar } from './hooks'\nimport { RadialBarArcs } from './RadialBarArcs'\nimport { RadialBarTracks } from './RadialBarTracks'\n\ntype InnerRadialBarProps<D extends RadialBarDatum = RadialBarDatum> = Omit<\n    RadialBarSvgProps<D>,\n    'animate' | 'motionConfig' | 'renderWrapper' | 'theme'\n> & {\n    forwardedRef: Ref<SVGSVGElement>\n}\n\nconst InnerRadialBar = <D extends RadialBarDatum>({\n    data,\n    maxValue = svgDefaultProps.maxValue,\n    valueFormat,\n    startAngle: originalStartAngle = svgDefaultProps.startAngle,\n    endAngle: originalEndAngle = svgDefaultProps.endAngle,\n    innerRadius: innerRadiusRatio = svgDefaultProps.innerRadius,\n    padding = svgDefaultProps.padding,\n    padAngle = svgDefaultProps.padAngle,\n    cornerRadius = svgDefaultProps.cornerRadius,\n    width,\n    height,\n    margin: partialMargin,\n    layers = svgDefaultProps.layers,\n    enableTracks = svgDefaultProps.enableTracks,\n    tracksColor = svgDefaultProps.tracksColor,\n    enableRadialGrid = svgDefaultProps.enableRadialGrid,\n    enableCircularGrid = svgDefaultProps.enableCircularGrid,\n    radialAxisStart = svgDefaultProps.radialAxisStart,\n    radialAxisEnd = svgDefaultProps.radialAxisEnd,\n    circularAxisInner = svgDefaultProps.circularAxisInner,\n    circularAxisOuter = svgDefaultProps.circularAxisOuter,\n    colors = svgDefaultProps.colors,\n    defs = svgDefaultProps.defs,\n    fill = svgDefaultProps.fill,\n    borderWidth = svgDefaultProps.borderWidth,\n    borderColor = svgDefaultProps.borderColor,\n    enableLabels = svgDefaultProps.enableLabels,\n    label = svgDefaultProps.label,\n    labelsSkipAngle = svgDefaultProps.labelsSkipAngle,\n    labelsSkipRadius = svgDefaultProps.labelsSkipRadius,\n    labelsRadiusOffset = svgDefaultProps.labelsRadiusOffset,\n    labelsTextColor = svgDefaultProps.labelsTextColor,\n    isInteractive = svgDefaultProps.isInteractive,\n    tooltip = svgDefaultProps.tooltip,\n    onClick,\n    onMouseEnter,\n    onMouseMove,\n    onMouseLeave,\n    transitionMode = svgDefaultProps.transitionMode,\n    legends = svgDefaultProps.legends,\n    role,\n    ariaLabel,\n    ariaLabelledBy,\n    ariaDescribedBy,\n    forwardedRef,\n}: InnerRadialBarProps<D>) => {\n    const { margin, innerWidth, innerHeight, outerWidth, outerHeight } = useDimensions(\n        width,\n        height,\n        partialMargin\n    )\n\n    const [startAngle, endAngle] = clampArc(originalStartAngle, originalEndAngle)\n\n    const {\n        center,\n        innerRadius,\n        outerRadius,\n        bars,\n        arcGenerator,\n        radiusScale,\n        valueScale,\n        tracks,\n        legendData,\n        customLayerProps,\n    } = useRadialBar<D>({\n        data,\n        maxValue,\n        valueFormat,\n        startAngle,\n        endAngle,\n        innerRadiusRatio,\n        padding,\n        padAngle,\n        cornerRadius,\n        width: innerWidth,\n        height: innerHeight,\n        colors,\n        tracksColor,\n    })\n\n    const layerById: Record<RadialBarLayerId, ReactNode> = {\n        grid: null,\n        tracks: null,\n        bars: null,\n        labels: null,\n        legends: null,\n    }\n\n    if (layers.includes('grid')) {\n        layerById.grid = (\n            <Fragment key=\"grid\">\n                <PolarGrid\n                    center={center}\n                    enableRadialGrid={enableRadialGrid}\n                    enableCircularGrid={enableCircularGrid}\n                    angleScale={valueScale}\n                    radiusScale={radiusScale}\n                    startAngle={startAngle}\n                    endAngle={endAngle}\n                />\n                {radialAxisStart && (\n                    <RadialAxis\n                        center={center}\n                        angle={Math.min(startAngle, endAngle)}\n                        scale={radiusScale}\n                        ticksPosition=\"before\"\n                        {...radialAxisStart}\n                    />\n                )}\n                {radialAxisEnd && (\n                    <RadialAxis\n                        center={center}\n                        angle={Math.max(startAngle, endAngle)}\n                        scale={radiusScale}\n                        ticksPosition=\"after\"\n                        {...radialAxisEnd}\n                    />\n                )}\n                {circularAxisInner && (\n                    <CircularAxis\n                        type=\"inner\"\n                        center={center}\n                        radius={innerRadius}\n                        startAngle={startAngle}\n                        endAngle={endAngle}\n                        scale={valueScale}\n                        {...circularAxisInner}\n                    />\n                )}\n                {circularAxisOuter && (\n                    <CircularAxis\n                        type=\"outer\"\n                        center={center}\n                        radius={outerRadius}\n                        startAngle={startAngle}\n                        endAngle={endAngle}\n                        scale={valueScale}\n                        {...circularAxisOuter}\n                    />\n                )}\n            </Fragment>\n        )\n    }\n\n    if (layers.includes('tracks') && enableTracks) {\n        layerById.tracks = (\n            <RadialBarTracks\n                key=\"tracks\"\n                center={center}\n                tracks={tracks}\n                arcGenerator={arcGenerator}\n                transitionMode={transitionMode}\n            />\n        )\n    }\n\n    if (layers.includes('bars')) {\n        layerById.bars = (\n            <RadialBarArcs<D>\n                key=\"bars\"\n                center={center}\n                bars={bars}\n                borderWidth={borderWidth}\n                borderColor={borderColor}\n                arcGenerator={arcGenerator}\n                isInteractive={isInteractive}\n                tooltip={tooltip}\n                onClick={onClick}\n                onMouseEnter={onMouseEnter}\n                onMouseMove={onMouseMove}\n                onMouseLeave={onMouseLeave}\n                transitionMode={transitionMode}\n            />\n        )\n    }\n\n    if (layers.includes('labels') && enableLabels) {\n        layerById.labels = (\n            <ArcLabelsLayer<ComputedBar<D>>\n                key=\"labels\"\n                center={center}\n                data={bars}\n                label={label}\n                radiusOffset={labelsRadiusOffset}\n                skipAngle={labelsSkipAngle}\n                skipRadius={labelsSkipRadius}\n                textColor={labelsTextColor}\n                transitionMode={transitionMode}\n            />\n        )\n    }\n\n    if (layers.includes('legends') && legends.length > 0) {\n        layerById.legends = (\n            <Fragment key=\"legends\">\n                {legends.map((legend, i) => (\n                    <BoxLegendSvg\n                        key={i}\n                        {...legend}\n                        containerWidth={innerWidth}\n                        containerHeight={innerHeight}\n                        data={legendData}\n                    />\n                ))}\n            </Fragment>\n        )\n    }\n\n    const boundDefs = bindDefs(defs, bars, fill, {\n        dataKey: 'data',\n        targetKey: 'fill',\n    })\n\n    return (\n        <SvgWrapper\n            width={outerWidth}\n            height={outerHeight}\n            margin={margin}\n            defs={boundDefs}\n            role={role}\n            ariaLabel={ariaLabel}\n            ariaLabelledBy={ariaLabelledBy}\n            ariaDescribedBy={ariaDescribedBy}\n            ref={forwardedRef}\n        >\n            {layers.map((layer, i) => {\n                if (typeof layer === 'function') {\n                    return <Fragment key={i}>{createElement(layer, customLayerProps)}</Fragment>\n                }\n\n                return layerById?.[layer] ?? null\n            })}\n        </SvgWrapper>\n    )\n}\n\nexport const RadialBar = forwardRef(\n    <D extends RadialBarDatum = RadialBarDatum>(\n        {\n            isInteractive = svgDefaultProps.isInteractive,\n            animate = svgDefaultProps.animate,\n            motionConfig = svgDefaultProps.motionConfig,\n            theme,\n            renderWrapper,\n            ...otherProps\n        }: RadialBarSvgProps<D>,\n        ref: Ref<SVGSVGElement>\n    ) => (\n        <Container\n            animate={animate}\n            isInteractive={isInteractive}\n            motionConfig={motionConfig}\n            renderWrapper={renderWrapper}\n            theme={theme}\n        >\n            <InnerRadialBar<D> isInteractive={isInteractive} {...otherProps} forwardedRef={ref} />\n        </Container>\n    )\n) as <D extends RadialBarDatum = RadialBarDatum>(\n    props: WithChartRef<RadialBarSvgProps<D>, SVGSVGElement>\n) => ReactElement\n","import { useMemo } from 'react'\nimport { scaleBand, scaleLinear } from 'd3-scale'\nimport { arc as d3Arc } from 'd3-shape'\nimport { degreesToRadians, useValueFormatter } from '@nivo/core'\nimport { Arc } from '@nivo/arcs'\nimport { useOrdinalColorScale } from '@nivo/colors'\nimport { castLinearScale, castBandScale, getScaleTicks } from '@nivo/scales'\nimport { commonDefaultProps, svgDefaultProps } from './props'\nimport {\n    ComputedBar,\n    RadialBarCommonProps,\n    RadialBarDataProps,\n    RadialBarCustomLayerProps,\n    RadialBarTrackDatum,\n    RadialBarDatum,\n} from './types'\n\ninterface RadialBarGroup<D extends RadialBarDatum> {\n    id: string\n    total: number\n    data: D[]\n}\n\nexport const useRadialBar = <D extends RadialBarDatum = RadialBarDatum>({\n    data,\n    maxValue: maxValueDirective = svgDefaultProps.maxValue,\n    valueFormat,\n    startAngle = commonDefaultProps.startAngle,\n    endAngle = commonDefaultProps.endAngle,\n    innerRadiusRatio = commonDefaultProps.innerRadius,\n    padding = commonDefaultProps.padding,\n    padAngle = commonDefaultProps.padAngle,\n    cornerRadius = commonDefaultProps.cornerRadius,\n    width,\n    height,\n    colors = commonDefaultProps.colors,\n    tracksColor = commonDefaultProps.tracksColor,\n}: {\n    data: RadialBarDataProps<D>['data']\n    maxValue: RadialBarCommonProps<D>['maxValue']\n    valueFormat?: RadialBarCommonProps<D>['valueFormat']\n    startAngle: RadialBarCommonProps<D>['startAngle']\n    innerRadiusRatio: RadialBarCommonProps<D>['innerRadius']\n    padding: RadialBarCommonProps<D>['padding']\n    padAngle: RadialBarCommonProps<D>['padAngle']\n    cornerRadius: RadialBarCommonProps<D>['cornerRadius']\n    endAngle: RadialBarCommonProps<D>['endAngle']\n    width: number\n    height: number\n    colors: RadialBarCommonProps<D>['colors']\n    tracksColor: RadialBarCommonProps<D>['tracksColor']\n}) => {\n    // using a hook, not because it's costly to compute, but because this is used as\n    // a dependency for other hooks, and otherwise a new array would be created all\n    // the time, forcing recomputing everything.\n    const center: [number, number] = useMemo(() => [width / 2, height / 2], [width, height])\n    const outerRadius = Math.min(...center)\n    const innerRadius = outerRadius * Math.min(innerRadiusRatio, 1)\n\n    const getColor = useOrdinalColorScale<ComputedBar<D>>(colors, 'category')\n\n    // the way categories are being extracted is a bit fragile, because it's extracted from the data,\n    // so if the first group doesn't contain the first expected category for example, then the order\n    // of categories is going to be incorrect.\n    // Maybe we could add an extra sort property, although this might be confusing.\n    const { serieIds, categories, groups, maxValue } = useMemo(() => {\n        const result: {\n            serieIds: string[]\n            categories: string[]\n            groups: RadialBarGroup<D>[]\n            maxValue: number\n        } = {\n            serieIds: [],\n            categories: [],\n            groups: [],\n            maxValue: 0,\n        }\n\n        data.forEach(serie => {\n            result.serieIds.push(serie.id)\n\n            let groupTotalValue = 0\n            serie.data.forEach(datum => {\n                if (!result.categories.includes(datum.x)) {\n                    result.categories.push(datum.x)\n                }\n                groupTotalValue += datum.y\n            })\n\n            result.groups.push({\n                id: serie.id,\n                total: groupTotalValue,\n                data: serie.data,\n            })\n        })\n\n        if (maxValueDirective === 'auto') {\n            result.maxValue = Math.max(...result.groups.map(group => group.total))\n        } else {\n            result.maxValue = maxValueDirective\n        }\n\n        return result\n    }, [data, maxValueDirective])\n\n    const valueScale = useMemo(\n        () =>\n            castLinearScale<number, number>(\n                scaleLinear<number, number>().domain([0, maxValue]).range([startAngle, endAngle])\n            ),\n        [maxValue, startAngle, endAngle]\n    )\n\n    const radiusScale = useMemo(\n        () =>\n            castBandScale<string>(\n                scaleBand<string>()\n                    .domain(serieIds)\n                    .range([innerRadius, outerRadius])\n                    .padding(padding)\n            ),\n        [serieIds, outerRadius, innerRadius, padding]\n    )\n\n    const arcGenerator = useMemo(\n        () =>\n            d3Arc<Arc>()\n                .startAngle(d => d.startAngle)\n                .endAngle(d => d.endAngle)\n                .innerRadius(d => d.innerRadius)\n                .outerRadius(d => d.outerRadius)\n                .cornerRadius(cornerRadius)\n                .padAngle(degreesToRadians(padAngle)),\n        [cornerRadius, padAngle]\n    )\n\n    const formatValue = useValueFormatter<number>(valueFormat)\n\n    const bars = useMemo(() => {\n        const innerBars: ComputedBar<D>[] = []\n\n        groups.forEach(group => {\n            let currentValue = 0\n            const arcInnerRadius = radiusScale(group.id) as number\n            const arcOuterRadius = arcInnerRadius + radiusScale.bandwidth()\n\n            group.data.forEach(datum => {\n                const stackedValue = currentValue + datum.y\n\n                const computedDatum: ComputedBar<D> = {\n                    id: `${group.id}.${datum.x}`,\n                    data: datum,\n                    groupId: group.id,\n                    category: datum.x,\n                    value: datum.y,\n                    formattedValue: formatValue(datum.y),\n                    color: '',\n                    stackedValue,\n                    arc: {\n                        startAngle: degreesToRadians(valueScale(currentValue)),\n                        endAngle: degreesToRadians(valueScale(stackedValue)),\n                        innerRadius: arcInnerRadius,\n                        outerRadius: arcOuterRadius,\n                    },\n                }\n\n                computedDatum.color = getColor(computedDatum)\n\n                currentValue += datum.y\n\n                innerBars.push(computedDatum)\n            })\n        })\n\n        return innerBars\n    }, [groups, radiusScale, valueScale, getColor, formatValue])\n\n    const startAngleRadians = degreesToRadians(startAngle)\n    const endAngleRadians = degreesToRadians(endAngle)\n\n    const tracks: RadialBarTrackDatum[] = useMemo(() => {\n        return getScaleTicks(radiusScale).map(value => {\n            const trackRadius = radiusScale(value) as number\n\n            return {\n                id: value,\n                color: tracksColor,\n                arc: {\n                    startAngle: startAngleRadians,\n                    endAngle: endAngleRadians,\n                    innerRadius: trackRadius,\n                    outerRadius: trackRadius + radiusScale.bandwidth(),\n                },\n            }\n        })\n    }, [radiusScale, startAngleRadians, endAngleRadians, tracksColor])\n\n    // Given the way categories are extracted, (please see the corresponding hook above),\n    // legends order might be incorrect, also colors are extracted from bars, to avoid\n    // duplicating the colors function, but if the color logic is custom for each bar,\n    // this might lead to weird values for legends.\n    // Maybe we could allow passing custom legend data to fix that.\n    const legendData = useMemo(\n        () =>\n            categories.map(category => {\n                const barWithCategory = bars.find(bar => bar.category === category)\n                const color = barWithCategory ? barWithCategory.color : undefined\n\n                return {\n                    id: category,\n                    label: category,\n                    color,\n                }\n            }),\n        [categories, bars]\n    )\n\n    const customLayerProps: RadialBarCustomLayerProps<D> = useMemo(\n        () => ({\n            center,\n            outerRadius,\n            innerRadius,\n            bars,\n            arcGenerator,\n            radiusScale,\n            valueScale,\n        }),\n        [center, outerRadius, innerRadius, bars, arcGenerator, radiusScale, valueScale]\n    )\n\n    return {\n        center,\n        outerRadius,\n        innerRadius,\n        bars,\n        arcGenerator,\n        radiusScale,\n        valueScale,\n        tracks,\n        legendData,\n        customLayerProps,\n    }\n}\n","import { forwardRef, Ref, ReactElement } from 'react'\nimport { ResponsiveWrapper, ResponsiveProps, WithChartRef } from '@nivo/core'\nimport { RadialBarDatum, RadialBarSvgProps } from './types'\nimport { RadialBar } from './RadialBar'\n\nexport const ResponsiveRadialBar = forwardRef(\n    <D extends RadialBarDatum = RadialBarDatum>(\n        {\n            defaultWidth,\n            defaultHeight,\n            onResize,\n            debounceResize,\n            ...props\n        }: ResponsiveProps<RadialBarSvgProps<D>>,\n        ref: Ref<SVGSVGElement>\n    ) => (\n        <ResponsiveWrapper\n            defaultWidth={defaultWidth}\n            defaultHeight={defaultHeight}\n            onResize={onResize}\n            debounceResize={debounceResize}\n        >\n            {({ width, height }) => (\n                <RadialBar<D> width={width} height={height} {...props} ref={ref} />\n            )}\n        </ResponsiveWrapper>\n    )\n) as <D extends RadialBarDatum = RadialBarDatum>(\n    props: WithChartRef<ResponsiveProps<RadialBarSvgProps<D>>, SVGSVGElement>\n) => ReactElement\n"],"names":["commonDefaultProps","maxValue","layers","startAngle","endAngle","innerRadius","padding","padAngle","cornerRadius","enableTracks","tracksColor","enableRadialGrid","enableCircularGrid","radialAxisStart","radialAxisEnd","circularAxisInner","circularAxisOuter","colors","scheme","borderWidth","borderColor","from","modifiers","enableLabels","label","labelsSkipAngle","labelsSkipRadius","labelsRadiusOffset","labelsTextColor","theme","isInteractive","tooltip","_ref","bar","_jsx","BasicTooltip","enableChip","id","_jsxs","children","category","groupId","value","formattedValue","color","legends","defs","fill","animate","motionConfig","transitionMode","renderWrapper","svgDefaultProps","_extends","RadialBarArcs","center","bars","arcGenerator","onClick","onMouseEnter","onMouseMove","onMouseLeave","_useTooltip","useTooltip","showTooltipFromEvent","hideTooltip","handleClick","useCallback","event","handleMouseEnter","createElement","handleMouseMove","handleMouseLeave","ArcsLayer","data","undefined","RadialBarTracks","tracks","InnerRadialBar","_ref$maxValue","valueFormat","_ref$startAngle","originalStartAngle","_ref$endAngle","originalEndAngle","_ref$innerRadius","innerRadiusRatio","_ref$padding","_ref$padAngle","_ref$cornerRadius","width","height","partialMargin","margin","_ref$layers","_ref$enableTracks","_ref$tracksColor","_ref$enableRadialGrid","_ref$enableCircularGr","_ref$radialAxisStart","_ref$radialAxisEnd","_ref$circularAxisInne","_ref$circularAxisOute","_ref$colors","_ref$defs","_ref$fill","_ref$borderWidth","_ref$borderColor","_ref$enableLabels","_ref$label","_ref$labelsSkipAngle","_ref$labelsSkipRadius","_ref$labelsRadiusOffs","_ref$labelsTextColor","_ref$isInteractive","_ref$tooltip","_ref$transitionMode","_ref$legends","role","ariaLabel","ariaLabelledBy","ariaDescribedBy","forwardedRef","_useDimensions","useDimensions","innerWidth","innerHeight","outerWidth","outerHeight","_clampArc","clampArc","_useRadialBar","maxValueDirective","_ref$innerRadiusRatio","useMemo","outerRadius","Math","min","apply","getColor","useOrdinalColorScale","_useMemo","result","serieIds","categories","groups","forEach","serie","push","groupTotalValue","datum","includes","x","y","total","max","map","group","valueScale","castLinearScale","scaleLinear","domain","range","radiusScale","castBandScale","scaleBand","d3Arc","d","degreesToRadians","formatValue","useValueFormatter","innerBars","currentValue","arcInnerRadius","arcOuterRadius","bandwidth","stackedValue","computedDatum","arc","startAngleRadians","endAngleRadians","getScaleTicks","trackRadius","legendData","barWithCategory","find","customLayerProps","useRadialBar","layerById","grid","labels","Fragment","PolarGrid","angleScale","RadialAxis","angle","scale","ticksPosition","CircularAxis","type","radius","ArcLabelsLayer","radiusOffset","skipAngle","skipRadius","textColor","length","legend","i","BoxLegendSvg","containerWidth","containerHeight","boundDefs","bindDefs","dataKey","targetKey","SvgWrapper","ref","layer","_layerById$layer","RadialBar","forwardRef","_ref2","_ref2$isInteractive","_ref2$animate","_ref2$motionConfig","otherProps","_objectWithoutPropertiesLoose","_excluded","Container","ResponsiveRadialBar","defaultWidth","defaultHeight","onResize","debounceResize","props","ResponsiveWrapper"],"mappings":"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"}