UNPKG

@nivo/bullet

Version:
1 lines 40.7 kB
{"version":3,"file":"nivo-bullet.mjs","sources":["../src/BulletMarkersItem.tsx","../src/BulletRectsItem.tsx","../src/props.ts","../src/BulletTooltip.tsx","../src/compute.ts","../src/BulletMarkers.tsx","../src/BulletRects.tsx","../src/BulletItem.tsx","../src/Bullet.tsx","../src/hooks.ts","../src/ResponsiveBullet.tsx"],"sourcesContent":["import { BulletMarkersItemProps } from './types'\nimport { animated } from '@react-spring/web'\n\nexport const BulletMarkersItem = ({\n animatedProps: { color, transform, x, y1, y2 },\n data,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onClick,\n}: BulletMarkersItemProps) => {\n return (\n <animated.line\n transform={transform}\n x1={x}\n x2={x}\n y1={y1}\n y2={y2}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"5\"\n onMouseMove={event => onMouseMove(data, event)}\n onMouseEnter={event => onMouseEnter(data, event)}\n onMouseLeave={event => onMouseLeave(data, event)}\n onClick={event => onClick(data, event)}\n />\n )\n}\n","import { BulletRectsItemProps } from './types'\nimport { animated, to } from '@react-spring/web'\n\nexport const BulletRectsItem = ({\n animatedProps: { x, y, width, height, color },\n borderColor,\n borderWidth,\n data,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onClick,\n}: BulletRectsItemProps) => {\n return (\n <animated.rect\n x={x}\n y={y}\n width={to(width, value => Math.max(value, 0))}\n height={to(height, value => Math.max(value, 0))}\n fill={color}\n strokeWidth={borderWidth}\n stroke={borderColor}\n onMouseMove={event => onMouseMove(data, event)}\n onMouseEnter={event => onMouseEnter(data, event)}\n onMouseLeave={event => onMouseLeave(data, event)}\n onClick={event => onClick(data, event)}\n />\n )\n}\n","import { BulletMarkersItem } from './BulletMarkersItem'\nimport { BulletRectsItem } from './BulletRectsItem'\nimport { motionDefaultProps, defaultMargin } from '@nivo/core'\nimport { BulletTooltip } from './BulletTooltip'\n\nexport const defaultProps = {\n layout: 'horizontal',\n reverse: false,\n spacing: 30,\n minValue: 0,\n maxValue: 'auto',\n axisPosition: 'after',\n titlePosition: 'before',\n titleAlign: 'middle',\n titleRotation: 0,\n titleOffsetX: 0,\n titleOffsetY: 0,\n rangeComponent: BulletRectsItem,\n rangeColors: 'seq:cool',\n measureComponent: BulletRectsItem,\n measureColors: 'seq:red_purple',\n markers: [],\n markerComponent: BulletMarkersItem,\n markerColors: 'seq:red_purple',\n rangeBorderWidth: 0,\n rangeBorderColor: { from: 'color' },\n measureSize: 0.4,\n measureBorderWidth: 0,\n measureBorderColor: { from: 'color' },\n markerSize: 0.6,\n isInteractive: true,\n tooltip: BulletTooltip,\n animate: motionDefaultProps.animate,\n motionConfig: motionDefaultProps.config,\n margin: defaultMargin,\n role: 'img',\n} as const\n","import { BulletTooltipProps } from './types'\nimport { BasicTooltip } from '@nivo/tooltip'\n\nexport const BulletTooltip = ({ color, v0, v1 }: BulletTooltipProps) => {\n return (\n <BasicTooltip\n id={\n v1 ? (\n <span>\n <strong>{v0}</strong> to <strong>{v1}</strong>\n </span>\n ) : (\n <strong>{v0}</strong>\n )\n }\n enableChip={true}\n color={color}\n />\n )\n}\n","import { BulletItemProps, BulletRectsProps, ComputedRangeDatum } from './types'\n// @ts-expect-error no types\nimport { getColorScale } from '@nivo/core'\n\ntype ComputeRect = Pick<BulletRectsProps, 'layout' | 'reverse' | 'scale' | 'height'>\n\nexport const stackValues = (\n values: number[],\n scale: BulletItemProps['scale'],\n colorScale: ReturnType<getColorScale>,\n type: 'range' | 'measures',\n useAverage = false\n) => {\n const [min, max] = scale.domain()\n const normalized = [...values, type === 'measures' || values.includes(max) ? 0 : max]\n .filter(v => v !== 0)\n .sort((a, b) => a - b)\n\n return normalized.reduce<ComputedRangeDatum[]>((acc, v1, index) => {\n const [last] = acc.slice(-1)\n const v0 = last?.v1 ?? min\n const sequentialValue = useAverage === true ? v0 + (v1 - v0) / 2 : v1\n\n return [\n ...acc,\n {\n index,\n v0,\n v1,\n color: colorScale(colorScale.type === 'sequential' ? sequentialValue : index),\n },\n ]\n }, [])\n}\n\nexport const getComputeRect = ({ layout, reverse, scale, height }: ComputeRect) => {\n if (layout === 'horizontal') {\n if (reverse === true) {\n return (d: ComputedRangeDatum) => {\n const x = scale(d.v1)\n const w = scale(d.v0) - x\n\n return { x, y: 0, width: w, height }\n }\n }\n\n return (d: ComputedRangeDatum) => {\n const x = scale(d.v0)\n const w = scale(d.v1) - x\n\n return { x, y: 0, width: w, height }\n }\n }\n\n if (reverse === true) {\n return (d: ComputedRangeDatum) => {\n const y = scale(d.v0)\n const h = scale(d.v1) - y\n\n return { x: 0, y, width: height, height: h }\n }\n }\n\n return (d: ComputedRangeDatum) => {\n const y = scale(d.v1)\n const h = scale(d.v0) - y\n\n return { x: 0, y, width: height, height: h }\n }\n}\n\nexport const computeRects = ({\n data,\n layout,\n reverse,\n scale,\n height,\n}: Pick<BulletRectsProps, 'data'> & ComputeRect) => {\n const computeRect = getComputeRect({\n layout,\n reverse,\n scale,\n height,\n })\n\n return data.map(d => ({\n data: d,\n ...computeRect(d),\n }))\n}\n","import { useMemo } from 'react'\nimport * as React from 'react'\nimport { useTransition } from '@react-spring/web'\nimport { useMotionConfig } from '@nivo/core'\nimport {\n BulletMarkersProps,\n ComputedMarkersDatum,\n MarkerWithPosition,\n PositionWithColor,\n} from './types'\n\ntype MouseEventWithDatum = (\n datum: ComputedMarkersDatum,\n event: React.MouseEvent<SVGLineElement, MouseEvent>\n) => void\n\ntype EventHandlers = Record<'onMouseEnter' | 'onMouseLeave' | 'onClick', MouseEventWithDatum>\n\nconst getPositionGenerator = ({\n layout,\n reverse,\n scale,\n height,\n markerSize,\n}: Pick<BulletMarkersProps, 'layout' | 'reverse' | 'scale' | 'height' | 'markerSize'>) => {\n if (layout === 'horizontal') {\n return (marker: ComputedMarkersDatum) => {\n const x = scale(marker.value)\n const y = height / 2\n const rotation = reverse === true ? 180 : 0\n\n return { x, y, size: markerSize, rotation }\n }\n }\n\n return (marker: ComputedMarkersDatum) => {\n const x = height / 2\n const y = scale(marker.value)\n const rotation = reverse === true ? 270 : 90\n\n return { x, y, size: markerSize, rotation }\n }\n}\n\nexport const BulletMarkers = ({\n scale,\n layout,\n reverse,\n markers,\n height,\n markerSize,\n component,\n onMouseEnter,\n onMouseLeave,\n onClick,\n}: BulletMarkersProps & EventHandlers) => {\n const getPosition = useMemo(\n () => getPositionGenerator({ layout, reverse, scale, height, markerSize }),\n [layout, reverse, scale, height, markerSize]\n )\n\n const { animate, config: springConfig } = useMotionConfig()\n const transition = useTransition<MarkerWithPosition, PositionWithColor>(\n markers.map(marker => ({ ...marker, position: getPosition(marker) })),\n {\n keys: marker => `${marker.index}`,\n enter: ({ color, position }: MarkerWithPosition) => ({\n color,\n transform: `rotate(${position.rotation}, ${position.x}, ${position.y})`,\n x: position.x,\n y1: position.y - position.size / 2,\n y2: position.y + position.size / 2,\n }),\n update: ({ color, position }: MarkerWithPosition) => ({\n color,\n transform: `rotate(${position.rotation}, ${position.x}, ${position.y})`,\n x: position.x,\n y1: position.y - position.size / 2,\n y2: position.y + position.size / 2,\n }),\n config: springConfig,\n immediate: !animate,\n }\n )\n\n return (\n <>\n {transition((props, { position, ...marker }) =>\n React.createElement(component, {\n key: marker.index,\n ...marker,\n ...position,\n animatedProps: props,\n data: marker,\n onMouseEnter,\n onMouseMove: onMouseEnter,\n onMouseLeave,\n onClick,\n })\n )}\n </>\n )\n}\n","import { createElement, useMemo } from 'react'\nimport { useTransition, animated, to } from '@react-spring/web'\nimport { useMotionConfig } from '@nivo/core'\nimport { useTheme } from '@nivo/theming'\nimport { computeRects } from './compute'\nimport { BulletRectsProps, BulletRectComputedRect, BulletRectAnimatedProps } from './types'\nimport { useInheritedColor } from '@nivo/colors'\n\nexport const BulletRects = ({\n animatedProps,\n data,\n layout,\n y,\n borderColor,\n borderWidth,\n component,\n reverse,\n scale,\n height,\n onMouseEnter,\n onMouseLeave,\n onClick,\n}: BulletRectsProps) => {\n const rects = useMemo(\n () =>\n computeRects({\n data,\n layout,\n reverse,\n scale,\n height,\n }),\n [data, layout, reverse, scale, height]\n )\n\n const theme = useTheme()\n const getBorderColor = useInheritedColor(borderColor, theme)\n\n const getTransform = (value: number) =>\n `translate(${layout === 'horizontal' ? 0 : value},${layout === 'horizontal' ? value : 0})`\n\n const transform = animatedProps ? to(animatedProps.measuresY, getTransform) : getTransform(y)\n\n const { animate, config: springConfig } = useMotionConfig()\n const transition = useTransition<BulletRectComputedRect, BulletRectAnimatedProps>(rects, {\n keys: rect => `${rect.data.index}`,\n enter: rect => ({\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n color: rect.data.color,\n }),\n update: rect => ({\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n color: rect.data.color,\n }),\n config: springConfig,\n immediate: !animate,\n })\n\n return (\n <animated.g transform={transform}>\n {transition((props, rect) =>\n createElement(component, {\n key: rect.data.index,\n index: rect.data.index,\n animatedProps: props,\n data: rect.data,\n x: props.x.get(),\n y: props.y.get(),\n borderColor: getBorderColor(rect.data),\n borderWidth,\n width: to(props.width, value => Math.max(value, 0)).get(),\n height: to(props.height, value => Math.max(value, 0)).get(),\n color: props.color.get(),\n onMouseEnter,\n onMouseMove: onMouseEnter,\n onMouseLeave,\n onClick,\n })\n )}\n </animated.g>\n )\n}\n","import { useMemo } from 'react'\nimport { useSpring, animated } from '@react-spring/web'\nimport { Axis } from '@nivo/axes'\nimport {\n // @ts-expect-error no types\n getColorScale,\n useMotionConfig,\n} from '@nivo/core'\nimport { Text } from '@nivo/text'\nimport { useTheme } from '@nivo/theming'\nimport { useTooltip } from '@nivo/tooltip'\nimport { stackValues } from './compute'\nimport { BulletMarkers } from './BulletMarkers'\nimport { BulletRects } from './BulletRects'\nimport { BulletItemProps } from './types'\n\nexport const BulletItem = ({\n id,\n\n scale,\n layout,\n reverse,\n axisPosition,\n x,\n y,\n width,\n height,\n\n title = id,\n titlePosition,\n titleAlign,\n titleOffsetX,\n titleOffsetY,\n titleRotation,\n tooltip,\n\n rangeBorderColor,\n rangeBorderWidth,\n rangeComponent,\n rangeColors,\n ranges,\n\n measureBorderColor,\n measureBorderWidth,\n measureComponent,\n measureHeight,\n measureColors,\n measures,\n\n markerComponent,\n markerColors,\n markerHeight,\n markers = [],\n\n onRangeClick,\n onMeasureClick,\n onMarkerClick,\n}: BulletItemProps) => {\n const theme = useTheme()\n const { showTooltipFromEvent, hideTooltip } = useTooltip()\n\n const computedRanges = useMemo(() => {\n const rangeColorScale = getColorScale(rangeColors, scale, true)\n\n return stackValues(ranges, scale, rangeColorScale, 'range')\n }, [rangeColors, ranges, scale])\n\n const computedMeasures = useMemo(() => {\n const measureColorScale = getColorScale(measureColors, scale)\n\n return stackValues(measures, scale, measureColorScale, 'measures')\n }, [measureColors, measures, scale])\n\n const computedMarkers = useMemo(() => {\n const markerColorScale = getColorScale(markerColors, scale)\n\n return markers.map((marker: number, index: number) => ({\n value: marker,\n index,\n color: markerColorScale(\n markerColorScale.type === 'sequential' ? marker : index\n ) as string,\n }))\n }, [markerColors, markers, scale])\n\n const TooltipComponent = tooltip\n\n const rangeNodes = (\n <BulletRects\n data={computedRanges}\n scale={scale}\n layout={layout}\n reverse={reverse}\n x={0}\n y={0}\n width={width}\n height={height}\n component={rangeComponent}\n borderColor={rangeBorderColor}\n borderWidth={rangeBorderWidth}\n onMouseEnter={(range, event) => {\n showTooltipFromEvent(\n <TooltipComponent color={range.color} v0={range.v0} v1={range.v1} />,\n event\n )\n }}\n onMouseLeave={hideTooltip}\n onClick={(range, event) => {\n onRangeClick?.({ id, ...range }, event)\n }}\n />\n )\n\n const markerNodes = (\n <BulletMarkers\n markers={computedMarkers}\n scale={scale}\n layout={layout}\n reverse={reverse}\n height={height}\n markerSize={markerHeight}\n component={markerComponent}\n onMouseEnter={(marker, event) => {\n showTooltipFromEvent(\n <TooltipComponent color={marker.color} v0={marker.value} />,\n event\n )\n }}\n onMouseLeave={hideTooltip}\n onClick={(marker, event) => {\n onMarkerClick?.({ id, ...marker }, event)\n }}\n />\n )\n\n const axisX = layout === 'vertical' && axisPosition === 'after' ? height : 0\n const axisY = layout === 'horizontal' && axisPosition === 'after' ? height : 0\n\n const axis = (\n <g transform={`translate(${axisX},${axisY})`}>\n <Axis\n axis={layout === 'horizontal' ? 'x' : 'y'}\n length={layout === 'horizontal' ? width : height}\n scale={scale}\n ticksPosition={axisPosition}\n />\n </g>\n )\n\n const titleX =\n layout === 'horizontal'\n ? titlePosition === 'before'\n ? titleOffsetX\n : width + titleOffsetX\n : height / 2 + titleOffsetX\n const titleY =\n layout === 'horizontal'\n ? height / 2 + titleOffsetY\n : titlePosition === 'before'\n ? titleOffsetY\n : width + titleOffsetY\n\n const titleNode = (\n <g transform={`translate(${titleX},${titleY}) rotate(${titleRotation})`}>\n {typeof title === 'string' ? (\n <Text\n style={{\n ...theme.labels.text,\n dominantBaseline: 'central',\n textAnchor: titleAlign,\n }}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n </g>\n )\n\n const { animate, config: springConfig } = useMotionConfig()\n const animatedProps = useSpring({\n measuresY: (height - measureHeight) / 2,\n transform: `translate(${x},${y})`,\n config: springConfig,\n immediate: !animate,\n })\n\n return (\n <animated.g transform={animatedProps.transform}>\n {rangeNodes}\n <BulletRects\n animatedProps={animatedProps}\n data={computedMeasures}\n scale={scale}\n layout={layout}\n reverse={reverse}\n x={0}\n y={0}\n width={width}\n height={measureHeight}\n component={measureComponent}\n borderColor={measureBorderColor}\n borderWidth={measureBorderWidth}\n onMouseEnter={(measure, event) => {\n showTooltipFromEvent(\n <TooltipComponent color={measure.color} v0={measure.v1} />,\n event\n )\n }}\n onMouseLeave={hideTooltip}\n onClick={(measure, event) => {\n onMeasureClick?.({ id, ...measure }, event)\n }}\n />\n {axis}\n {markerNodes}\n {titleNode}\n </animated.g>\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport { Container, SvgWrapper, useDimensions } from '@nivo/core'\nimport { defaultProps } from './props'\nimport { BulletSvgProps } from './types'\nimport { BulletItem } from './BulletItem'\nimport { useEnhancedData } from './hooks'\n\nexport const Bullet = forwardRef((props: BulletSvgProps, forwardedRef: Ref<SVGSVGElement>) => {\n const {\n data,\n layout,\n spacing,\n measureSize,\n markerSize,\n reverse,\n axisPosition,\n minValue,\n maxValue,\n margin: partialMargin,\n width,\n height,\n titlePosition,\n titleAlign,\n titleOffsetX,\n titleOffsetY,\n titleRotation,\n rangeBorderColor,\n rangeBorderWidth,\n rangeComponent,\n rangeColors,\n measureBorderColor,\n measureBorderWidth,\n measureComponent,\n measureColors,\n markerComponent,\n markerColors,\n theme,\n tooltip = defaultProps.tooltip,\n animate,\n motionConfig,\n isInteractive,\n onRangeClick,\n onMeasureClick,\n onMarkerClick,\n role,\n } = { ...defaultProps, ...props }\n\n const { margin, innerWidth, innerHeight } = useDimensions(width, height, partialMargin)\n\n const itemHeight =\n layout === 'horizontal'\n ? (innerHeight - spacing * (data.length - 1)) / data.length\n : (innerWidth - spacing * (data.length - 1)) / data.length\n\n const measureHeight = itemHeight * measureSize\n const markerHeight = itemHeight * markerSize\n\n const enhancedData = useEnhancedData(data, {\n height: innerHeight,\n layout,\n maxValue: maxValue === 'auto' ? undefined : maxValue,\n minValue: minValue === 'auto' ? undefined : minValue,\n reverse,\n width: innerWidth,\n })\n\n return (\n <Container\n isInteractive={isInteractive}\n theme={theme}\n animate={animate}\n motionConfig={motionConfig}\n >\n <SvgWrapper\n width={width}\n height={height}\n margin={margin}\n role={role}\n ref={forwardedRef}\n >\n {enhancedData.map((d, i) => (\n <BulletItem\n key={d.id}\n {...d}\n layout={layout}\n reverse={reverse}\n x={layout === 'vertical' ? itemHeight * i + spacing * i : 0}\n y={layout === 'horizontal' ? itemHeight * i + spacing * i : 0}\n width={innerWidth}\n height={itemHeight}\n titlePosition={titlePosition}\n titleAlign={titleAlign}\n titleOffsetX={titleOffsetX}\n titleOffsetY={titleOffsetY}\n titleRotation={titleRotation}\n measureHeight={measureHeight}\n markerHeight={markerHeight}\n rangeBorderColor={rangeBorderColor}\n rangeBorderWidth={rangeBorderWidth}\n rangeComponent={rangeComponent}\n rangeColors={rangeColors}\n measureBorderColor={measureBorderColor}\n measureBorderWidth={measureBorderWidth}\n measureComponent={measureComponent}\n measureColors={measureColors}\n markerComponent={markerComponent}\n markerColors={markerColors}\n axisPosition={axisPosition}\n onRangeClick={onRangeClick}\n onMeasureClick={onMeasureClick}\n onMarkerClick={onMarkerClick}\n tooltip={tooltip}\n />\n ))}\n </SvgWrapper>\n </Container>\n )\n})\n","import { createLinearScale } from '@nivo/scales'\nimport { useMemo } from 'react'\nimport { Datum, CommonBulletProps } from './types'\n\nexport const useEnhancedData = (\n data: Datum[],\n {\n layout,\n maxValue,\n minValue,\n reverse,\n height,\n width,\n }: Pick<CommonBulletProps, 'layout' | 'reverse' | 'height' | 'width'> &\n Record<'maxValue' | 'minValue', number | undefined>\n) => {\n return useMemo(\n () =>\n data.map(d => {\n const all = [...d.ranges, ...d.measures, ...(d.markers ?? [])]\n const max = maxValue ?? Math.max(...all)\n const min = minValue ?? Math.min(...all)\n\n const scale = createLinearScale(\n { clamp: true, min, max, type: 'linear', round: true },\n { all, max, min },\n layout === 'horizontal' ? width : height,\n layout === 'horizontal' ? (reverse ? 'y' : 'x') : reverse ? 'x' : 'y'\n )\n\n return {\n ...d,\n scale,\n }\n }),\n [data, height, layout, maxValue, minValue, reverse, width]\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport { ResponsiveWrapper, ResponsiveProps } from '@nivo/core'\nimport { BulletSvgProps } from './types'\nimport { Bullet } from './Bullet'\n\nexport const ResponsiveBullet = forwardRef(\n (\n {\n defaultWidth,\n defaultHeight,\n onResize,\n debounceResize,\n ...props\n }: ResponsiveProps<BulletSvgProps>,\n ref: Ref<SVGSVGElement>\n ) => (\n <ResponsiveWrapper\n defaultWidth={defaultWidth}\n defaultHeight={defaultHeight}\n onResize={onResize}\n debounceResize={debounceResize}\n >\n {({ width, height }) => <Bullet width={width} height={height} {...props} ref={ref} />}\n </ResponsiveWrapper>\n )\n)\n"],"names":["BulletRectsItem","_ref","_ref$animatedProps","animatedProps","x","y","width","height","color","borderColor","borderWidth","data","onMouseEnter","onMouseMove","onMouseLeave","onClick","_jsx","animated","rect","to","value","Math","max","fill","strokeWidth","stroke","event","defaultProps","layout","reverse","spacing","minValue","maxValue","axisPosition","titlePosition","titleAlign","titleRotation","titleOffsetX","titleOffsetY","rangeComponent","rangeColors","measureComponent","measureColors","markers","markerComponent","transform","y1","y2","line","x1","x2","markerColors","rangeBorderWidth","rangeBorderColor","from","measureSize","measureBorderWidth","measureBorderColor","markerSize","isInteractive","tooltip","v0","v1","BasicTooltip","id","_jsxs","children","enableChip","animate","motionDefaultProps","motionConfig","config","margin","defaultMargin","role","stackValues","values","scale","colorScale","type","useAverage","_scale$domain","domain","min","concat","includes","filter","v","sort","a","b","reduce","acc","index","_last$v","last","slice","sequentialValue","BulletMarkers","_ref2","component","getPosition","useMemo","marker","size","rotation","getPositionGenerator","_useMotionConfig","useMotionConfig","springConfig","transition","useTransition","map","_extends","position","keys","enter","_ref3","update","_ref4","immediate","_Fragment","props","_ref5","_objectWithoutPropertiesLoose","_excluded","React","createElement","key","BulletRects","rects","computeRect","d","h","getComputeRect","computeRects","theme","useTheme","getBorderColor","useInheritedColor","getTransform","measuresY","g","get","BulletItem","_ref$title","title","ranges","measureHeight","measures","markerHeight","_ref$markers","onRangeClick","onMeasureClick","onMarkerClick","_useTooltip","useTooltip","showTooltipFromEvent","hideTooltip","computedRanges","rangeColorScale","getColorScale","computedMeasures","measureColorScale","computedMarkers","markerColorScale","TooltipComponent","rangeNodes","range","markerNodes","axis","axisX","axisY","Axis","length","ticksPosition","titleNode","Text","style","labels","text","dominantBaseline","textAnchor","useSpring","measure","Bullet","forwardRef","forwardedRef","_defaultProps$props","partialMargin","_defaultProps$props$t","_useDimensions","useDimensions","innerWidth","innerHeight","itemHeight","enhancedData","_d$markers","all","apply","createLinearScale","clamp","round","useEnhancedData","undefined","Container","SvgWrapper","ref","i","ResponsiveBullet","defaultWidth","defaultHeight","onResize","debounceResize","ResponsiveWrapper"],"mappings":"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"}