{"version":3,"file":"index.mjs","names":["ReChartsComposedChart","Tooltip"],"sources":["../../src/BenchmarkColumnChart/index.tsx"],"sourcesContent":["'use client';\n\nimport { Flexbox } from '@lobehub/ui';\nimport { Skeleton } from '@lobehub/ui/base-ui';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport { readableColor } from 'polished';\nimport { type CSSProperties, MouseEvent, ReactNode, forwardRef, useMemo, useState } from 'react';\nimport {\n  Bar,\n  CartesianGrid,\n  Cell,\n  ErrorBar,\n  LabelList,\n  Line,\n  ComposedChart as ReChartsComposedChart,\n  ReferenceLine,\n  ResponsiveContainer,\n  Tooltip,\n  XAxis,\n  YAxis,\n} from 'recharts';\nimport type { AxisDomain } from 'recharts/types/util/types';\n\nimport ChartTooltip from '@/common/ChartTooltip';\nimport NoData from '@/common/NoData';\nimport {\n  type BenchmarkBaseProps,\n  type BenchmarkEventProps,\n  type NormalizedBenchmarkItem,\n  defaultBenchmarkErrorFormatter,\n  defaultBenchmarkValueFormatter,\n  getBenchmarkLabelMetrics,\n  getBenchmarkMaxValue,\n  normalizeBenchmarkData,\n  splitBenchmarkLabel,\n} from '@/common/benchmark';\nimport { constructCategoryColors, deepEqual, getYAxisDomain } from '@/common/utils';\nimport { useThemeColorRange } from '@/hooks/useThemeColorRange';\nimport { getTextWidth } from '@/utils/getMaxLabelLength';\n\nimport { styles } from './styles';\n\nexport interface BenchmarkColumnChartProps extends BenchmarkBaseProps {\n  animationDuration?: number;\n  /**\n   * Auto-compute Y min\n   * @default false\n   */\n  autoMinValue?: boolean;\n  /**\n   * Gap between bar categories\n   * @default '10%'\n   */\n  barCategoryGap?: string | number;\n  /**\n   * Display name for the bar series in legend / tooltip.\n   * Pass `false` or `''` to hide from the legend (tooltip still uses a fallback).\n   * @default 'Score'\n   */\n  barName?: string | false;\n  /**\n   * Rounded top corners radius\n   * @default 0\n   */\n  barRadius?: number;\n  /**\n   * Fallback colors when items omit per-item color\n   */\n  colors?: string[];\n  /**\n   * Rotate X-axis labels\n   * @default -66\n   */\n  labelAngle?: number;\n  /**\n   * X-axis label font size\n   * @default 11\n   */\n  labelFontSize?: number;\n  /**\n   * Height reserved for icons + X-axis labels (via XAxis height)\n   * @default auto from label length / angle\n   */\n  labelHeight?: number;\n  /**\n   * Color of the overlay line\n   * @default theme.gold\n   */\n  lineColor?: string;\n  /**\n   * Secondary line-series field\n   * @default 'line'\n   */\n  lineKey?: string;\n  /**\n   * Display name for the line series in legend / tooltip.\n   * Pass `false` or `''` to hide from the legend (tooltip still uses a fallback).\n   * @default 'Overall'\n   */\n  lineName?: string | false;\n  /**\n   * Override Y domain max\n   */\n  maxValue?: number;\n  /**\n   * Override Y domain min\n   * @default 0\n   */\n  minValue?: number;\n  /**\n   * Minimum chart width; enables horizontal scroll when container is narrower\n   */\n  minWidth?: number;\n  /**\n   * Custom rank renderer. Default is `#${rank}`.\n   */\n  renderRank?: (item: NormalizedBenchmarkItem) => ReactNode;\n  /**\n   * Show AccuracyBar-style error bars\n   * @default true\n   */\n  showErrorBars?: boolean;\n  /**\n   * Show dashed horizontal grid lines\n   * @default true\n   */\n  showGridLines?: boolean;\n  /**\n   * Show legend when a line series is present\n   * @default true\n   */\n  showLegend?: boolean;\n  /**\n   * Show overlay line series when data includes line values\n   * @default true\n   */\n  showLine?: boolean;\n  /**\n   * Show numeric labels above line points\n   * @default true\n   */\n  showLineLabel?: boolean;\n  /**\n   * Show rank under each column (bottom of X-axis labels)\n   * @default false\n   */\n  showRank?: boolean;\n  /**\n   * Show tooltip\n   * @default true\n   */\n  showTooltip?: boolean;\n  /**\n   * Show numeric labels on bars\n   * @default true\n   */\n  showValueLabel?: boolean;\n  /**\n   * Show X axis line (category labels stay visible)\n   * @default false\n   */\n  showXAxis?: boolean;\n  /**\n   * Show Y axis line + value ticks\n   * @default false\n   */\n  showYAxis?: boolean;\n  /**\n   * Annotation shown near the unranked separator.\n   * Pass `false` or `''` to hide.\n   */\n  unrankedLabel?: string | false;\n  /**\n   * Font size for numeric labels on bars\n   * @default 12\n   */\n  valueLabelFontSize?: number;\n}\n\ninterface TickProps {\n  payload: { value: string | number };\n  x: number;\n  y: number;\n}\n\nconst RoundedTopBar = (props: any) => {\n  const { fill, x, y, width, height, radius = 0 } = props;\n  if (height <= 0) return null;\n\n  if (!radius) {\n    return <rect fill={fill} height={height} width={width} x={x} y={y} />;\n  }\n\n  const r = Math.min(radius, width / 2, height);\n  const path = `\n    M${x},${y + height}\n    L${x},${y + r}\n    Q${x},${y} ${x + r},${y}\n    L${x + width - r},${y}\n    Q${x + width},${y} ${x + width},${y + r}\n    L${x + width},${y + height}\n    Z\n  `;\n\n  return <path d={path} fill={fill} />;\n};\n\nconst BenchmarkColumnChart = forwardRef<HTMLDivElement, BenchmarkColumnChartProps>((props, ref) => {\n  const theme = useTheme();\n  const themeColorRange = useThemeColorRange();\n  const {\n    data = [],\n    index,\n    valueKey,\n    providerKey,\n    iconKey,\n    colorKey,\n    errorKey,\n    lineKey,\n    renderIcon,\n    colors = themeColorRange,\n    valueFormatter = defaultBenchmarkValueFormatter,\n    accuracyFormatter,\n    errorFormatter = defaultBenchmarkErrorFormatter,\n    showError = true,\n    showErrorBars = true,\n    showAnimation = false,\n    animationDuration = 900,\n    onValueChange,\n    sortOrder = 'descending',\n    className,\n    style,\n    loading,\n    width = '100%',\n    height = 320,\n    noDataText,\n    barCategoryGap = '10%',\n    barRadius = 0,\n    barName,\n    lineName,\n    lineColor,\n    minWidth,\n    maxValue,\n    minValue = 0,\n    autoMinValue = false,\n    labelAngle = -66,\n    labelFontSize = 11,\n    showGridLines = true,\n    showValueLabel = true,\n    valueLabelFontSize = 12,\n    showRank = false,\n    renderRank,\n    showLine = true,\n    showLineLabel = true,\n    showLegend = true,\n    unrankedLabel,\n    showXAxis = false,\n    showYAxis = false,\n    showTooltip = true,\n    highlightColor,\n    ...rest\n  } = props;\n\n  const [activeBar, setActiveBar] = useState<NormalizedBenchmarkItem | undefined>();\n  const displayFormatter = accuracyFormatter ?? valueFormatter;\n  const enableError = showError && showErrorBars;\n  void errorFormatter;\n  const resolvedHighlightColor = highlightColor ?? theme.gold;\n\n  // false / '' hide from legend; undefined keeps default labels for tooltip + legend\n  const legendBarName = barName === false || barName === '' ? null : (barName ?? 'Score');\n  const legendLineName = lineName === false || lineName === '' ? null : (lineName ?? 'Overall');\n  const tooltipBarName = legendBarName ?? 'Score';\n  const tooltipLineName = legendLineName ?? 'Overall';\n  const resolvedUnrankedLabel =\n    unrankedLabel === false || unrankedLabel === '' ? null : (unrankedLabel ?? null);\n\n  const items = useMemo(\n    () =>\n      normalizeBenchmarkData({\n        colorKey,\n        data,\n        errorKey,\n        iconKey,\n        index,\n        lineKey,\n        providerKey,\n        renderIcon,\n        sortOrder,\n        valueKey,\n      }),\n    [\n      colorKey,\n      data,\n      errorKey,\n      iconKey,\n      index,\n      lineKey,\n      providerKey,\n      renderIcon,\n      sortOrder,\n      valueKey,\n    ],\n  );\n\n  const chartData = useMemo(\n    () =>\n      items.map((item) => ({\n        ...item.original,\n        __color: item.color,\n        __error: item.error,\n        __icon: item.icon,\n        __key: item.key,\n        // Break path before unranked; solo series draws the isolated dot\n        __line: item.unranked ? null : (item.lineValue ?? null),\n        __lineSolo: item.unranked ? (item.lineValue ?? null) : null,\n        __name: item.name,\n        __provider: item.provider,\n        __rank: item.rank,\n        __unranked: item.unranked,\n        __value: item.value,\n      })),\n    [items],\n  );\n\n  const enableLine =\n    showLine && items.some((item) => item.lineValue !== undefined && item.lineValue !== null);\n  const firstUnrankedKey = items.find((item) => item.unranked)?.key;\n  const resolvedLineColor = lineColor ?? theme.gold;\n\n  const itemMap = useMemo(() => {\n    const map = new Map<string | number, NormalizedBenchmarkItem>();\n    for (const item of items) map.set(item.key, item);\n    return map;\n  }, [items]);\n\n  const resolvedMaxValue = useMemo(() => getBenchmarkMaxValue(items, maxValue), [items, maxValue]);\n  const yAxisDomain = getYAxisDomain(autoMinValue, minValue, resolvedMaxValue || undefined);\n  const categoryColors = constructCategoryColors(\n    items.map((item) => String(item.key)),\n    colors,\n  );\n\n  const chartMinWidth = minWidth ?? Math.max(items.length * 52, 320);\n  const numericHeight = typeof height === 'number' ? height : 360;\n\n  const RANK_SLOT = 22;\n  const RANK_GAP = 12;\n  const BOTTOM_PAD = 16;\n  const SIDE_PAD_MIN = 24;\n\n  const { resolvedLabelHeight, rankY, sidePad } = useMemo(() => {\n    const lineHeight = Math.ceil(labelFontSize * 1.25);\n    const widthScale = labelFontSize / 12;\n    const absAngle = Math.abs(labelAngle);\n    const radians = (absAngle * Math.PI) / 180;\n    let maxProjected = 0;\n    let maxOverhang = 0;\n\n    for (const item of items) {\n      const { lineCount, longestWidth } = getBenchmarkLabelMetrics(item.name);\n      const scaledWidth = longestWidth * widthScale;\n      const blockHeight = lineCount * lineHeight;\n      const projected =\n        scaledWidth * Math.sin(radians) + blockHeight * Math.cos(radians) + (item.icon ? 36 : 12);\n      maxProjected = Math.max(maxProjected, projected);\n\n      // Steep tilt + end anchor needs side room; flat centered labels barely do\n      if (absAngle < 20) {\n        maxOverhang = Math.max(maxOverhang, 8);\n      } else {\n        maxOverhang = Math.max(maxOverhang, scaledWidth * Math.cos(radians) * 0.55);\n      }\n    }\n\n    const labelBlock = Math.ceil(maxProjected + 16);\n    const rankExtra = showRank ? RANK_GAP + RANK_SLOT : 0;\n    const autoHeight = labelBlock + rankExtra;\n    const maxLabelBudget = Math.max(120, Math.floor(numericHeight * 0.48));\n    const height = Math.min(\n      maxLabelBudget,\n      props.labelHeight ? Math.max(props.labelHeight, autoHeight) : autoHeight,\n    );\n\n    return {\n      rankY: showRank ? Math.min(height - 8, labelBlock + RANK_GAP + 12) : 0,\n      resolvedLabelHeight: height,\n      sidePad: Math.min(56, Math.max(SIDE_PAD_MIN, Math.ceil(maxOverhang) + 12)),\n    };\n  }, [items, labelAngle, labelFontSize, numericHeight, props.labelHeight, showRank]);\n\n  // Negative tilt + end anchor hangs left; keep right margin tight\n  const leftPad = sidePad + (showYAxis ? 4 : 0);\n  const rightPad =\n    Math.abs(labelAngle) >= 20 && labelAngle < 0\n      ? Math.max(SIDE_PAD_MIN, Math.round(sidePad * 0.4))\n      : sidePad;\n  const headerPadInline = leftPad + (showYAxis ? 40 : 0);\n  const showBarLegend = showLegend && legendBarName !== null;\n  const showLineLegend = showLegend && legendLineName !== null;\n  const showUnrankedAnnotation = firstUnrankedKey !== undefined && resolvedUnrankedLabel !== null;\n  const showChartHeader = enableLine && (showBarLegend || showLineLegend || showUnrankedAnnotation);\n  const chartTopPad = enableLine || enableError ? (showChartHeader ? 84 : 44) : 12;\n\n  if (loading || !data) return <Skeleton height={height} width={width} />;\n\n  const hasOnValueChange = !!onValueChange;\n\n  const onBarClick = (entry: any, _idx: number, event: MouseEvent) => {\n    event.stopPropagation();\n    if (!onValueChange) return;\n\n    const item = itemMap.get(entry.__key ?? entry.payload?.__key);\n    if (!item) return;\n\n    if (\n      activeBar &&\n      deepEqual(\n        { key: activeBar.key, value: activeBar.value },\n        { key: item.key, value: item.value },\n      )\n    ) {\n      setActiveBar(undefined);\n      onValueChange(null);\n      return;\n    }\n\n    setActiveBar(item);\n    const payload: BenchmarkEventProps = {\n      ...item.original,\n      eventType: 'bar',\n      rank: item.rank,\n      value: item.value,\n    };\n    onValueChange(payload);\n  };\n\n  const renderTick = ({ x, y, payload }: TickProps) => {\n    const item = itemMap.get(payload.value);\n    if (!item) return <g />;\n\n    const labelY = item.icon ? 36 : 12;\n    const lines = splitBenchmarkLabel(item.name);\n    const lineHeight = Math.ceil(labelFontSize * 1.25);\n    const highlightFill = item.highlighted ? resolvedHighlightColor : undefined;\n\n    return (\n      <g transform={`translate(${x},${y})`}>\n        {item.icon ? (\n          <foreignObject height={24} overflow=\"visible\" width={28} x={-14} y={4}>\n            <div className={styles.iconWrap}>{item.icon as ReactNode}</div>\n          </foreignObject>\n        ) : null}\n        <text\n          className={styles.tickLabel}\n          fill={highlightFill}\n          fontSize={labelFontSize}\n          style={{ fontSize: labelFontSize, ...(highlightFill ? { fill: highlightFill } : null) }}\n          textAnchor={labelAngle < 0 ? 'end' : labelAngle > 0 ? 'start' : 'middle'}\n          transform={`rotate(${labelAngle}, 0, ${labelY})`}\n          x={0}\n          y={labelY}\n        >\n          <title>{String(item.name).replaceAll('\\n', ' ')}</title>\n          {lines.map((line, lineIndex) => (\n            <tspan dy={lineIndex === 0 ? 4 : lineHeight} key={`${item.key}-${lineIndex}`} x={0}>\n              {line}\n            </tspan>\n          ))}\n        </text>\n        {showRank ? (\n          renderRank ? (\n            <foreignObject height={20} overflow=\"visible\" width={48} x={-24} y={rankY - 16}>\n              <div\n                className={styles.rank}\n                style={highlightFill ? { color: highlightFill } : undefined}\n              >\n                {renderRank(item)}\n              </div>\n            </foreignObject>\n          ) : (\n            <text\n              className={styles.rank}\n              dominantBaseline=\"auto\"\n              fill={highlightFill}\n              fontSize={14}\n              style={highlightFill ? { fill: highlightFill } : undefined}\n              textAnchor=\"middle\"\n              x={0}\n              y={rankY}\n            >\n              #{item.rank}\n            </text>\n          )\n        ) : null}\n      </g>\n    );\n  };\n\n  return (\n    <Flexbox\n      className={cx(styles.container, className)}\n      height={numericHeight}\n      ref={ref}\n      style={\n        {\n          '--benchmark-header-pad-inline': `${headerPadInline}px`,\n          '--benchmark-label-font-size': `${labelFontSize}px`,\n          '--benchmark-value-label-font-size': `${valueLabelFontSize}px`,\n          'position': 'relative',\n          ...style,\n        } as CSSProperties\n      }\n      width={width}\n      {...rest}\n    >\n      <div\n        style={{\n          height: numericHeight,\n          minWidth: chartMinWidth,\n          position: 'relative',\n          width: '100%',\n        }}\n      >\n        {showChartHeader ? (\n          <div className={styles.chartHeader}>\n            {showBarLegend || showLineLegend ? (\n              <div className={styles.legend}>\n                {showBarLegend ? (\n                  <span className={styles.legendItem}>\n                    <span className={styles.legendBars} style={{ background: cssVar.colorText }} />\n                    {legendBarName}\n                  </span>\n                ) : null}\n                {showLineLegend ? (\n                  <span className={styles.legendItem}>\n                    <span\n                      className={styles.legendLine}\n                      style={{ borderColor: resolvedLineColor }}\n                    />\n                    {legendLineName}\n                  </span>\n                ) : null}\n              </div>\n            ) : (\n              <span />\n            )}\n            {showUnrankedAnnotation ? (\n              <div className={styles.unrankedLabel}>{resolvedUnrankedLabel}</div>\n            ) : null}\n          </div>\n        ) : null}\n        <ResponsiveContainer height={numericHeight} width=\"100%\">\n          {chartData.length ? (\n            <ReChartsComposedChart\n              barCategoryGap={barCategoryGap}\n              data={chartData}\n              margin={{\n                bottom: BOTTOM_PAD,\n                left: leftPad,\n                right: rightPad,\n                top: chartTopPad,\n              }}\n              onClick={\n                hasOnValueChange && activeBar\n                  ? () => {\n                      setActiveBar(undefined);\n                      onValueChange?.(null);\n                    }\n                  : undefined\n              }\n            >\n              {showGridLines ? (\n                <CartesianGrid className={styles.gridLines} horizontal vertical={false} />\n              ) : null}\n              <XAxis\n                axisLine={showXAxis}\n                dataKey=\"__key\"\n                height={resolvedLabelHeight}\n                interval={0}\n                stroke={showXAxis ? cssVar.colorBorder : undefined}\n                tick={renderTick}\n                tickLine={showXAxis}\n              />\n              <YAxis\n                allowDecimals\n                axisLine={showYAxis}\n                domain={yAxisDomain as AxisDomain}\n                hide={!showYAxis}\n                stroke={showYAxis ? cssVar.colorBorder : undefined}\n                tick={{ fill: cssVar.colorTextDescription, fontSize: 12 }}\n                tickFormatter={displayFormatter}\n                tickLine={showYAxis}\n                width={showYAxis ? 40 : 0}\n              />\n              <Tooltip\n                content={\n                  showTooltip\n                    ? ({ active, payload }) => {\n                        if (!active || !payload?.length) return null;\n                        const entry = payload[0]?.payload;\n                        const item = itemMap.get(entry?.__key);\n                        if (!item) return null;\n\n                        const modelName = String(item.name).replaceAll('\\n', ' ');\n                        const title = item.provider\n                          ? String(item.provider)\n                          : accuracyFormatter\n                            ? 'Accuracy'\n                            : 'Score';\n                        const swatch =\n                          item.color ?? categoryColors.get(String(item.key)) ?? cssVar.colorPrimary;\n                        const tooltipPayload: Array<{\n                          color?: string;\n                          dataKey: string;\n                          name: string;\n                          value: number;\n                        }> = [\n                          {\n                            color: swatch,\n                            dataKey: '__value',\n                            name: tooltipBarName,\n                            value: item.value,\n                          },\n                        ];\n                        if (enableLine && item.lineValue !== undefined) {\n                          tooltipPayload.push({\n                            color: resolvedLineColor,\n                            dataKey: '__line',\n                            name: tooltipLineName,\n                            value: item.lineValue,\n                          });\n                        }\n\n                        return (\n                          <ChartTooltip\n                            active={active}\n                            categoryColors={\n                              new Map([\n                                [tooltipBarName, swatch],\n                                [tooltipLineName, resolvedLineColor],\n                              ])\n                            }\n                            label={\n                              item.unranked && resolvedUnrankedLabel\n                                ? `${title} · ${modelName}`\n                                : title\n                            }\n                            payload={tooltipPayload}\n                            valueFormatter={(val: number): any => displayFormatter(Number(val))}\n                          />\n                        );\n                      }\n                    : undefined\n                }\n                cursor={{ fill: cssVar.colorFillTertiary }}\n                isAnimationActive={false}\n                wrapperStyle={{ outline: 'none' }}\n              />\n              {firstUnrankedKey !== undefined ? (\n                <ReferenceLine\n                  ifOverflow=\"extendDomain\"\n                  position=\"start\"\n                  stroke={cssVar.colorBorder}\n                  strokeDasharray=\"4 4\"\n                  x={firstUnrankedKey}\n                />\n              ) : null}\n              <Bar\n                animationDuration={animationDuration}\n                dataKey=\"__value\"\n                isAnimationActive={showAnimation}\n                name={tooltipBarName}\n                onClick={onBarClick}\n                shape={(shapeProps: any) => <RoundedTopBar {...shapeProps} radius={barRadius} />}\n                style={{ cursor: onValueChange ? 'pointer' : undefined }}\n              >\n                {chartData.map((entry) => {\n                  const fill =\n                    entry.__color ?? categoryColors.get(String(entry.__key)) ?? cssVar.colorPrimary;\n                  const dimmed = activeBar && activeBar.key !== entry.__key;\n                  return (\n                    <Cell fill={fill} fillOpacity={dimmed ? 0.35 : 1} key={String(entry.__key)} />\n                  );\n                })}\n                {showValueLabel ? (\n                  <LabelList\n                    content={(labelProps: any) => {\n                      const {\n                        x,\n                        y,\n                        width: barWidth,\n                        height: barHeight,\n                        value,\n                        index: barIndex,\n                      } = labelProps;\n                      const entry = chartData[barIndex];\n                      if (\n                        x === undefined ||\n                        y === undefined ||\n                        barWidth === undefined ||\n                        barHeight === undefined\n                      )\n                        return null;\n\n                      const text = displayFormatter(Number(value ?? 0));\n                      const textWidth = getTextWidth(text) * (valueLabelFontSize / 12);\n                      // Leave room under the lower error whisker when error bars are on\n                      const labelInset = enableError ? 18 : 8;\n                      if (\n                        Number(barWidth) < textWidth + 8 ||\n                        Number(barHeight) < labelInset + valueLabelFontSize + 2\n                      )\n                        return null;\n\n                      const fill =\n                        entry?.__color ??\n                        categoryColors.get(String(entry?.__key)) ??\n                        cssVar.colorPrimary;\n                      let labelFill = cssVar.colorTextLightSolid;\n                      try {\n                        labelFill = readableColor(fill, '#000000', '#ffffff', false);\n                      } catch {\n                        // keep default for invalid / css-var colors\n                      }\n\n                      return (\n                        <text\n                          className={styles.valueLabel}\n                          dominantBaseline=\"hanging\"\n                          fill={labelFill}\n                          fontSize={valueLabelFontSize}\n                          style={{ fontSize: valueLabelFontSize }}\n                          textAnchor=\"middle\"\n                          x={Number(x) + Number(barWidth) / 2}\n                          y={Number(y) + labelInset}\n                        >\n                          {text}\n                        </text>\n                      );\n                    }}\n                    dataKey=\"__value\"\n                    position=\"insideTop\"\n                  />\n                ) : null}\n                {enableError ? (\n                  <ErrorBar\n                    dataKey=\"__error\"\n                    direction=\"y\"\n                    stroke=\"#ffffff\"\n                    strokeWidth={1.5}\n                    width={4}\n                  />\n                ) : null}\n              </Bar>\n              {enableLine ? (\n                <Line\n                  activeDot={{ r: 5 }}\n                  connectNulls={false}\n                  dataKey=\"__line\"\n                  dot={(dotProps: any) => {\n                    const { cx, cy, payload, value } = dotProps;\n                    if (\n                      value === undefined ||\n                      value === null ||\n                      cx === undefined ||\n                      cy === undefined\n                    ) {\n                      return <g key={`dot-${payload?.__key ?? 'x'}`} />;\n                    }\n                    return (\n                      <circle\n                        cx={cx}\n                        cy={cy}\n                        fill={cssVar.colorBgContainer}\n                        key={`dot-${payload.__key}`}\n                        r={4}\n                        stroke={resolvedLineColor}\n                        strokeWidth={1.5}\n                      />\n                    );\n                  }}\n                  isAnimationActive={showAnimation}\n                  name={tooltipLineName}\n                  stroke={resolvedLineColor}\n                  strokeWidth={2}\n                  type=\"monotone\"\n                >\n                  {showLineLabel ? (\n                    <LabelList\n                      content={(labelProps: any) => {\n                        const { x, y, value } = labelProps;\n                        if (\n                          value === undefined ||\n                          value === null ||\n                          x === undefined ||\n                          y === undefined\n                        )\n                          return null;\n                        return (\n                          <text\n                            className={styles.lineLabel}\n                            fill={resolvedLineColor}\n                            fontSize={valueLabelFontSize}\n                            textAnchor=\"middle\"\n                            x={Number(x)}\n                            y={Number(y) - 10}\n                          >\n                            {displayFormatter(Number(value))}\n                          </text>\n                        );\n                      }}\n                      dataKey=\"__line\"\n                      position=\"top\"\n                    />\n                  ) : null}\n                </Line>\n              ) : null}\n              {enableLine ? (\n                <Line\n                  connectNulls={false}\n                  dataKey=\"__lineSolo\"\n                  dot={(dotProps: any) => {\n                    const { cx, cy, payload, value } = dotProps;\n                    if (\n                      value === undefined ||\n                      value === null ||\n                      cx === undefined ||\n                      cy === undefined\n                    ) {\n                      return <g key={`solo-${payload?.__key ?? 'x'}`} />;\n                    }\n                    return (\n                      <circle\n                        cx={cx}\n                        cy={cy}\n                        fill={cssVar.colorBgContainer}\n                        key={`solo-${payload.__key}`}\n                        r={4}\n                        stroke={resolvedLineColor}\n                        strokeWidth={1.5}\n                      />\n                    );\n                  }}\n                  isAnimationActive={false}\n                  legendType=\"none\"\n                  stroke=\"transparent\"\n                  strokeWidth={0}\n                  type=\"monotone\"\n                >\n                  {showLineLabel ? (\n                    <LabelList\n                      content={(labelProps: any) => {\n                        const { x, y, value } = labelProps;\n                        if (\n                          value === undefined ||\n                          value === null ||\n                          x === undefined ||\n                          y === undefined\n                        )\n                          return null;\n                        return (\n                          <text\n                            className={styles.lineLabel}\n                            fill={resolvedLineColor}\n                            fontSize={valueLabelFontSize}\n                            textAnchor=\"middle\"\n                            x={Number(x)}\n                            y={Number(y) - 10}\n                          >\n                            {displayFormatter(Number(value))}\n                          </text>\n                        );\n                      }}\n                      dataKey=\"__lineSolo\"\n                      position=\"top\"\n                    />\n                  ) : null}\n                </Line>\n              ) : null}\n            </ReChartsComposedChart>\n          ) : (\n            <NoData noDataText={noDataText} />\n          )}\n        </ResponsiveContainer>\n      </div>\n    </Flexbox>\n  );\n});\n\nBenchmarkColumnChart.displayName = 'BenchmarkColumnChart';\n\nexport default BenchmarkColumnChart;\n"],"mappings":"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"}