{
  "version": 3,
  "sources": ["../../src/document/components/chrome/analytics/section/AbTestConversionRateChart.tsx", "../../src/document/components/chrome/analytics/section/AbTestConversionRateChart.styles.ts"],
  "sourcesContent": ["import { colors, fonts } from \"@framerjs/fresco/tokens\"\nimport { cx } from \"@linaria/core\"\nimport { AxisBottom, AxisLeft } from \"@visx/axis\"\nimport { localPoint } from \"@visx/event\"\nimport { LinearGradient } from \"@visx/gradient\"\nimport { Group } from \"@visx/group\"\nimport { scaleLinear, scaleTime } from \"@visx/scale\"\nimport { AreaClosed, Bar, LinePath } from \"@visx/shape\"\nimport { useTooltip } from \"@visx/tooltip\"\nimport { format, isSameDay } from \"date-fns\"\nimport type { Target, TargetAndTransition } from \"framer-motion\"\nimport { motion } from \"framer-motion\"\nimport React from \"react\"\nimport { ChartFade } from \"../components/ChartFade.tsx\"\nimport { ChartHorizontalLines } from \"../components/ChartHorizontalLines.tsx\"\nimport { ChartTooltip } from \"../components/ChartTooltip.tsx\"\nimport { fadeTransition } from \"../utils/animations.ts\"\nimport { ChartCurves, TOOLTIP_DOT_RADIUS, bisector, getTooltipLeft } from \"../utils/chart.ts\"\nimport { formatAbsolutePercentage, formatAxisDate, formatNumberCommaSeparatorNotation } from \"../utils/formatUtils.ts\"\nimport type {\n\tAbTestConversionRatePoint,\n\tAbTestConversionRatePointVariant,\n} from \"../utils/funnel-stats/getFunnelConversionRate.ts\"\nimport type { AbVariantWithMetrics } from \"../utils/useAbTestVariantsWithMetrics.ts\"\nimport { getVariantColorToken, getVariantDimmedColorToken } from \"../utils/variantColorToken.ts\"\nimport * as styles from \"./AbTestConversionRateChart.styles.ts\"\nimport {\n\tCHART_HEIGHT,\n\tINNER_CHART_HEIGHT,\n\tMARGIN_LEFT,\n\tMARGIN_RIGHT,\n\tMARGIN_TOP,\n\tX_AXIS_MARGIN,\n\tY_AXIS_TOP_LABEL_PADDING,\n\tY_AXIS_WIDTH,\n} from \"./AbTestConversionRateChart.styles.ts\"\n\nconst NUM_TICKS_HOURLY = 6\nconst NUM_TICKS_DAILY = 2\n\nconst getDate = (d?: AbTestConversionRatePoint) => (d?.timestamp ? new Date(d.timestamp) : new Date())\nconst bisectDate = bisector<AbTestConversionRatePoint, Date>(getDate).left\n\nconst getVariantConversionRate = (variantIndex: number, d: AbTestConversionRatePoint) =>\n\t(d.variants[variantIndex]?.conversionRate ?? 0) * 100\nconst getVariantLowerBound = (variantIndex: number, d: AbTestConversionRatePoint) =>\n\t(d.variants[variantIndex]?.conversionRateCredibleInterval[0] ?? 0) * 100\nconst getVariantUpperBound = (variantIndex: number, d: AbTestConversionRatePoint) =>\n\t(d.variants[variantIndex]?.conversionRateCredibleInterval[1] ?? 0) * 100\n\ninterface VariantWithName extends AbTestConversionRatePointVariant {\n\tname: string\n\tindex: number\n\tisDefined: boolean // TODO: find a better way to skip data points\n}\n\ninterface ResultWithVariantNames extends AbTestConversionRatePoint {\n\tvariants: VariantWithName[]\n}\n\ninterface Props {\n\tabVariantsWithMetrics: readonly AbVariantWithMetrics[]\n\tisLoading: boolean\n\tabTestResults: readonly AbTestConversionRatePoint[]\n}\n\nconst AbTestConversionRateChart = React.memo(function AbTestConversionRateChart({\n\tabVariantsWithMetrics,\n\tisLoading,\n\tabTestResults,\n}: Props) {\n\tconst fromDate = React.useMemo(() => getDate(abTestResults[0]), [abTestResults])\n\tconst toDate = React.useMemo(() => getDate(abTestResults[abTestResults.length - 1]), [abTestResults])\n\tconst isHourlyData = React.useMemo(() => {\n\t\tconst secondTick = getDate(abTestResults[1])\n\t\treturn isSameDay(fromDate, secondTick)\n\t}, [fromDate, abTestResults])\n\n\tconst results = React.useMemo(\n\t\t() =>\n\t\t\tabTestResults.map(({ variants, ...rest }) => {\n\t\t\t\t// Use the funnel variants order to map the results\n\t\t\t\t// Resulting in the results being sorted by the same order as the variants in the funnel\n\t\t\t\t// With the correct color and name\n\t\t\t\tconst mappedVariants: VariantWithName[] = []\n\t\t\t\tfor (const variant of abVariantsWithMetrics) {\n\t\t\t\t\tconst variantResult = variants.find(v => v.abVariantId === variant.id)\n\t\t\t\t\tmappedVariants.push({\n\t\t\t\t\t\tisDefined: !!variantResult,\n\t\t\t\t\t\tabVariantId: variant.id,\n\t\t\t\t\t\tname: variant.name,\n\t\t\t\t\t\tindex: variant.index,\n\t\t\t\t\t\tconversionRate: 0,\n\t\t\t\t\t\tstartCount: 0,\n\t\t\t\t\t\tfinalCount: 0,\n\t\t\t\t\t\tconversionRateCredibleInterval: [0, 0],\n\t\t\t\t\t\t...variantResult,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn { ...rest, variants: mappedVariants } satisfies ResultWithVariantNames\n\t\t\t}),\n\t\t[abVariantsWithMetrics, abTestResults],\n\t)\n\n\tconst {\n\t\ttooltipData,\n\t\ttooltipLeft = 0,\n\t\ttooltipTop = 0,\n\t\tshowTooltip,\n\t\thideTooltip,\n\t} = useTooltip<ResultWithVariantNames>()\n\n\tconst ref = React.useRef<HTMLDivElement | null>(null)\n\tconst refCallback = React.useCallback((node: HTMLDivElement | null) => {\n\t\tref.current = node\n\t\tif (node) setChartWidth(node.getBoundingClientRect().width)\n\t}, [])\n\tconst [chartWidth, setChartWidth] = React.useState(0)\n\n\tReact.useEffect(() => {\n\t\tif (!ref.current) return\n\t\tconst resizeObserver = new ResizeObserver(entries => {\n\t\t\tfor (const entry of entries) {\n\t\t\t\tsetChartWidth(entry.target.getBoundingClientRect().width)\n\t\t\t}\n\t\t})\n\t\tresizeObserver.observe(ref.current)\n\t\treturn () => resizeObserver.disconnect()\n\t}, [])\n\n\t// bounds\n\tconst innerWidth = chartWidth - MARGIN_LEFT - MARGIN_RIGHT\n\n\t// scales\n\tconst [firstDateInRange, lastDateInRange, dateScale] = React.useMemo(() => {\n\t\treturn [\n\t\t\tfromDate,\n\t\t\ttoDate,\n\t\t\tscaleTime({\n\t\t\t\trange: [0, innerWidth],\n\t\t\t\tdomain: [fromDate, toDate],\n\t\t\t\tround: false,\n\t\t\t\tnice: false,\n\t\t\t}),\n\t\t]\n\t}, [innerWidth, fromDate, toDate])\n\n\t// gets the maximum conversion rate in the entire dataset\n\tconst [minConversionRate, midConversionRate, maxConversionRate] = React.useMemo(() => {\n\t\tlet minValue = 100\n\t\tlet maxValue = 0\n\t\tfor (const result of results) {\n\t\t\tfor (const variant of result.variants) {\n\t\t\t\tif (!variant.isDefined) continue\n\n\t\t\t\tconst rate = variant.conversionRate * 100\n\t\t\t\tconst lower = variant.conversionRateCredibleInterval[0] * 100\n\t\t\t\tconst upper = variant.conversionRateCredibleInterval[1] * 100\n\t\t\t\tminValue = Math.min(minValue, rate, lower, upper)\n\t\t\t\tmaxValue = Math.max(maxValue, rate, lower, upper)\n\t\t\t}\n\t\t}\n\n\t\tif (minValue === 100) minValue = 0\n\n\t\t// Add nice rounding\n\t\tmaxValue = Math.ceil(maxValue)\n\t\tminValue = Math.floor(minValue)\n\n\t\t// Round the mid value for bands taller than 5\n\t\tif (maxValue - minValue > 5 && (minValue + maxValue) % 2 === 1) {\n\t\t\tmaxValue += 1\n\t\t}\n\n\t\tconst midValue = (minValue + maxValue) / 2\n\n\t\treturn [minValue, midValue, maxValue]\n\t}, [results])\n\n\tconst maxConversionRateScale = React.useMemo(\n\t\t() =>\n\t\t\tscaleLinear({\n\t\t\t\trange: [INNER_CHART_HEIGHT, 0],\n\t\t\t\tdomain: [minConversionRate, maxConversionRate],\n\t\t\t\tround: false,\n\t\t\t\tnice: false,\n\t\t\t}),\n\t\t[minConversionRate, maxConversionRate],\n\t)\n\n\tconst formatBottomAxisLabels = React.useCallback(\n\t\t(val: Date) => (isHourlyData ? format(val, \"h a\") : formatAxisDate(val)),\n\t\t[isHourlyData],\n\t)\n\tconst formatLeftAxisLabels = React.useCallback((val: number) => formatAbsolutePercentage(val), [])\n\n\t// tooltip handler\n\tconst handleTooltip = React.useCallback(\n\t\t(event: React.TouchEvent<SVGRectElement> | React.MouseEvent<SVGRectElement>) => {\n\t\t\tconst { x: mouseX } = localPoint(event) || { x: 0 }\n\t\t\tconst hoveredDate = dateScale.invert(mouseX - MARGIN_LEFT)\n\n\t\t\tconst nearestDataIndex = bisectDate(results, hoveredDate, 1)\n\n\t\t\tconst previousDataPoint = results[nearestDataIndex - 1]\n\t\t\tconst nextDataPoint = results[nearestDataIndex]\n\n\t\t\tlet nearestDataPoint: ResultWithVariantNames | undefined\n\t\t\tif (previousDataPoint && !nextDataPoint) {\n\t\t\t\tnearestDataPoint = previousDataPoint\n\t\t\t} else if (previousDataPoint && nextDataPoint) {\n\t\t\t\tconst previousDate = getDate(previousDataPoint)\n\t\t\t\tconst nextDate = getDate(nextDataPoint)\n\n\t\t\t\tif (\n\t\t\t\t\tMath.abs(hoveredDate.getTime() - previousDate.getTime()) <\n\t\t\t\t\tMath.abs(nextDate.getTime() - hoveredDate.getTime())\n\t\t\t\t) {\n\t\t\t\t\tnearestDataPoint = previousDataPoint\n\t\t\t\t} else {\n\t\t\t\t\tnearestDataPoint = nextDataPoint\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (nearestDataPoint) {\n\t\t\t\tlet highest = 0\n\t\t\t\tlet variantIndex = 0\n\t\t\t\tfor (let i = 0; i < nearestDataPoint.variants.length; i++) {\n\t\t\t\t\tconst variant = nearestDataPoint.variants[i]\n\t\t\t\t\tif (variant && variant.conversionRate * 100 > highest) {\n\t\t\t\t\t\thighest = variant.conversionRate * 100\n\t\t\t\t\t\tvariantIndex = i\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tshowTooltip({\n\t\t\t\t\ttooltipData: nearestDataPoint,\n\t\t\t\t\ttooltipLeft: dateScale(getDate(nearestDataPoint)) + MARGIN_LEFT,\n\t\t\t\t\ttooltipTop: maxConversionRateScale(getVariantConversionRate(variantIndex, nearestDataPoint)),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\t[showTooltip, maxConversionRateScale, dateScale, results],\n\t)\n\n\tconst getLinePathX = React.useCallback((d: AbTestConversionRatePoint) => dateScale(getDate(d)) ?? 0, [dateScale])\n\n\tconst getConversionRatePathY = React.useCallback(\n\t\t(variantIndex: number) => (d: AbTestConversionRatePoint) =>\n\t\t\tmaxConversionRateScale(getVariantConversionRate(variantIndex, d)) ?? 0,\n\t\t[maxConversionRateScale],\n\t)\n\tconst getConversionRateLowerBoundPathY = React.useCallback(\n\t\t(variantIndex: number) => (d: AbTestConversionRatePoint) =>\n\t\t\tmaxConversionRateScale(getVariantLowerBound(variantIndex, d)) ?? 0,\n\t\t[maxConversionRateScale],\n\t)\n\tconst getConversionRateUpperBoundPathY = React.useCallback(\n\t\t(variantIndex: number) => (d: AbTestConversionRatePoint) =>\n\t\t\tmaxConversionRateScale(getVariantUpperBound(variantIndex, d)) ?? 0,\n\t\t[maxConversionRateScale],\n\t)\n\tconst getConversionRatePathDefined = React.useCallback(\n\t\t(variantIndex: number) => (d: ResultWithVariantNames) => !!d.variants[variantIndex]?.isDefined,\n\t\t[],\n\t)\n\n\tconst initial: Target = { opacity: 0 }\n\tconst animate: TargetAndTransition = {\n\t\topacity: isLoading ? 0 : 1,\n\t\ttransition: fadeTransition,\n\t}\n\n\treturn (\n\t\t<div ref={refCallback} className={styles.container}>\n\t\t\t<div className={styles.title}>Over Time</div>\n\n\t\t\t<svg width={chartWidth} height={CHART_HEIGHT} className={cx(styles.chart, isLoading && styles.chartIsUpdating)}>\n\t\t\t\t<g>\n\t\t\t\t\t<title>Conversion Rate Over Time</title>\n\t\t\t\t</g>\n\t\t\t\t<defs>\n\t\t\t\t\t<ChartFade id=\"fadeMask\" />\n\t\t\t\t\t{abVariantsWithMetrics.map(({ index }) => (\n\t\t\t\t\t\t<LinearGradient\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tid={`area-gradient-${index}`}\n\t\t\t\t\t\t\tfrom={getVariantDimmedColorToken(index)}\n\t\t\t\t\t\t\tto={getVariantDimmedColorToken(index)}\n\t\t\t\t\t\t\tfromOpacity={1}\n\t\t\t\t\t\t\ttoOpacity={0.25}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</defs>\n\n\t\t\t\t<motion.g initial={initial} animate={animate} mask=\"url(#fadeMask)\">\n\t\t\t\t\t{/* Offset has to be inside the fadeMask to avoid clipping */}\n\t\t\t\t\t<Group left={MARGIN_LEFT} top={MARGIN_TOP + Y_AXIS_TOP_LABEL_PADDING}>\n\t\t\t\t\t\t<ChartHorizontalLines\n\t\t\t\t\t\t\tscale={maxConversionRateScale}\n\t\t\t\t\t\t\tleft={Y_AXIS_WIDTH}\n\t\t\t\t\t\t\twidth={chartWidth}\n\t\t\t\t\t\t\tlines={[minConversionRate, midConversionRate, maxConversionRate]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{abVariantsWithMetrics.map(({ index }) => (\n\t\t\t\t\t\t\t<AreaClosed<AbTestConversionRatePoint>\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tcurve={ChartCurves.Smooth}\n\t\t\t\t\t\t\t\tdata={results}\n\t\t\t\t\t\t\t\tx={getLinePathX}\n\t\t\t\t\t\t\t\ty0={getConversionRateLowerBoundPathY(index)}\n\t\t\t\t\t\t\t\ty1={getConversionRateUpperBoundPathY(index)}\n\t\t\t\t\t\t\t\tyScale={maxConversionRateScale}\n\t\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\t\t\tstrokeWidth={1.5}\n\t\t\t\t\t\t\t\tfill={`url(#area-gradient-${index})`}\n\t\t\t\t\t\t\t\tdefined={getConversionRatePathDefined(index)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{abVariantsWithMetrics.map(({ index }) => (\n\t\t\t\t\t\t\t<LinePath<AbTestConversionRatePoint>\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tcurve={ChartCurves.Smooth}\n\t\t\t\t\t\t\t\tstroke={getVariantColorToken(index)}\n\t\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\t\t\tstrokeWidth={1.5}\n\t\t\t\t\t\t\t\tdata={results}\n\t\t\t\t\t\t\t\tx={getLinePathX}\n\t\t\t\t\t\t\t\ty={getConversionRatePathY(index)}\n\t\t\t\t\t\t\t\tdefined={getConversionRatePathDefined(index)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{tooltipData?.variants.map(variant =>\n\t\t\t\t\t\t\tvariant.isDefined ? (\n\t\t\t\t\t\t\t\t<circle\n\t\t\t\t\t\t\t\t\tkey={variant.abVariantId}\n\t\t\t\t\t\t\t\t\tcx={getTooltipLeft(tooltipLeft, MARGIN_LEFT, chartWidth)}\n\t\t\t\t\t\t\t\t\tcy={maxConversionRateScale(getVariantConversionRate(variant.index, tooltipData))}\n\t\t\t\t\t\t\t\t\tr={TOOLTIP_DOT_RADIUS}\n\t\t\t\t\t\t\t\t\tfill={getVariantColorToken(variant.index)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Group>\n\t\t\t\t</motion.g>\n\n\t\t\t\t<Group left={MARGIN_LEFT} top={MARGIN_TOP + Y_AXIS_TOP_LABEL_PADDING}>\n\t\t\t\t\t<AxisBottom\n\t\t\t\t\t\thideTicks\n\t\t\t\t\t\thideAxisLine\n\t\t\t\t\t\ttop={INNER_CHART_HEIGHT + X_AXIS_MARGIN}\n\t\t\t\t\t\tscale={dateScale}\n\t\t\t\t\t\tnumTicks={isHourlyData ? NUM_TICKS_HOURLY : NUM_TICKS_DAILY}\n\t\t\t\t\t\ttickValues={isHourlyData ? undefined : [firstDateInRange, lastDateInRange]}\n\t\t\t\t\t\ttickFormat={formatBottomAxisLabels}\n\t\t\t\t\t\ttickLabelProps={(_, index) => ({\n\t\t\t\t\t\t\tfill: colors.analyticsTertiary,\n\t\t\t\t\t\t\tfontSize: fonts.size.base,\n\t\t\t\t\t\t\tfontWeight: fonts.weight.baseActive,\n\t\t\t\t\t\t\ttextAnchor: index === 0 ? \"start\" : \"end\",\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<AxisLeft\n\t\t\t\t\t\thideTicks\n\t\t\t\t\t\thideAxisLine\n\t\t\t\t\t\thideZero\n\t\t\t\t\t\tscale={maxConversionRateScale}\n\t\t\t\t\t\tnumTicks={3}\n\t\t\t\t\t\ttop={-Y_AXIS_TOP_LABEL_PADDING}\n\t\t\t\t\t\tleft={Y_AXIS_WIDTH}\n\t\t\t\t\t\ttickFormat={formatLeftAxisLabels}\n\t\t\t\t\t\ttickValues={[minConversionRate, midConversionRate, maxConversionRate]}\n\t\t\t\t\t\ttickLength={Y_AXIS_WIDTH}\n\t\t\t\t\t\ttickLabelProps={() => ({\n\t\t\t\t\t\t\tverticalAnchor: \"start\",\n\t\t\t\t\t\t\tfill: colors.analyticsTertiary,\n\t\t\t\t\t\t\tfontSize: fonts.size.base,\n\t\t\t\t\t\t\tfontWeight: fonts.weight.baseActive,\n\t\t\t\t\t\t\ttextAnchor: \"start\",\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Bar\n\t\t\t\t\t\twidth={innerWidth}\n\t\t\t\t\t\theight={INNER_CHART_HEIGHT}\n\t\t\t\t\t\tfill=\"transparent\"\n\t\t\t\t\t\trx={14}\n\t\t\t\t\t\tonTouchStart={handleTooltip}\n\t\t\t\t\t\tonTouchMove={handleTooltip}\n\t\t\t\t\t\tonMouseMove={handleTooltip}\n\t\t\t\t\t\tonMouseLeave={hideTooltip}\n\t\t\t\t\t/>\n\t\t\t\t</Group>\n\t\t\t</svg>\n\n\t\t\t{tooltipData && (\n\t\t\t\t<ChartTooltip\n\t\t\t\t\ttop={tooltipTop}\n\t\t\t\t\tleft={getTooltipLeft(tooltipLeft, 0, chartWidth)}\n\t\t\t\t\tisHourlyData={isHourlyData}\n\t\t\t\t\tdate={getDate(tooltipData)}\n\t\t\t\t\titems={tooltipData.variants\n\t\t\t\t\t\t.map(variant =>\n\t\t\t\t\t\t\tvariant.isDefined\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tindicatorColor: getVariantColorToken(variant.index),\n\t\t\t\t\t\t\t\t\t\tlabel: variant.name,\n\t\t\t\t\t\t\t\t\t\tvalue: formatAbsolutePercentage(variant.conversionRate * 100),\n\t\t\t\t\t\t\t\t\t\tadditionalInfo: formatNumberCommaSeparatorNotation(variant.finalCount),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.filter(e => e !== undefined)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t)\n})\n\n// Using `export default` since React.lazy() explicitly doesn\u2019t support named imports\n// biome-ignore lint/style/noDefaultExport: needed here\nexport default AbTestConversionRateChart\n", "import \"AbTestConversionRateChart.styles_1y63wyd.wyw.css\"; export const MARGIN_TOP = 0;\nexport const MARGIN_RIGHT = 0;\nconst MARGIN_BOTTOM = 45;\nexport const MARGIN_LEFT = 0;\nexport const Y_AXIS_TOP_LABEL_PADDING = 4;\nexport const Y_AXIS_WIDTH = 40;\nexport const X_AXIS_MARGIN = 15;\nexport const INNER_CHART_HEIGHT = 200;\nexport const CHART_HEIGHT = INNER_CHART_HEIGHT + MARGIN_TOP + MARGIN_BOTTOM + Y_AXIS_TOP_LABEL_PADDING;\nexport const container = \"container_c1fuy1qv\";\nexport const title = \"title_tfubbb\";\nexport const chart = \"chart_cokivti\";\nexport const chartIsUpdating = \"chartIsUpdating_c1tptvdl\";"],
  "mappings": "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",
  "names": ["React", "AbTestConversionRateChart"]
}
