{"version":3,"file":"SparkBarChart.mjs","names":["ReChartsBarChart"],"sources":["../../src/SparkChart/SparkBarChart.tsx"],"sourcesContent":["'use client';\n\nimport { Flexbox } from '@lobehub/ui';\nimport { Skeleton } from '@lobehub/ui/base-ui';\nimport { css, cssVar, cx } from 'antd-style';\nimport { forwardRef } from 'react';\nimport { Bar, BarChart as ReChartsBarChart, ResponsiveContainer, XAxis, YAxis } from 'recharts';\nimport { AxisDomain } from 'recharts/types/util/types';\n\nimport BaseSparkChartProps from '@/common/BaseSparkChartProps';\nimport NoData from '@/common/NoData';\nimport { constructCategoryColors, getYAxisDomain } from '@/common/utils';\nimport { useThemeColorRange } from '@/hooks/useThemeColorRange';\n\nexport interface SparkBarChartProps extends BaseSparkChartProps {\n  loading?: boolean;\n  relative?: boolean;\n  stack?: boolean;\n}\n\nconst SparkBarChart = forwardRef<HTMLDivElement, SparkBarChartProps>((props, ref) => {\n  const themeColorRange = useThemeColorRange();\n  const {\n    data = [],\n    categories = [],\n    index,\n    colors = themeColorRange,\n    stack = false,\n    relative = false,\n    animationDuration = 900,\n    showAnimation = false,\n    noDataText = <div />,\n    loading,\n    autoMinValue = false,\n    minValue,\n    maxValue,\n    className,\n    width = 112,\n    height = 48,\n    style,\n    ...rest\n  } = props;\n\n  if (loading || !data) return <Skeleton height={height} width={width} />;\n\n  const categoryColors = constructCategoryColors(categories, colors);\n  const yAxisDomain = getYAxisDomain(autoMinValue, minValue, maxValue);\n\n  return (\n    <Flexbox\n      className={className}\n      height={height}\n      ref={ref}\n      style={{ position: 'relative', ...style }}\n      width={width}\n      {...rest}\n    >\n      <ResponsiveContainer>\n        {data?.length ? (\n          <ReChartsBarChart\n            data={data}\n            margin={{ bottom: 0, left: -1.5, right: -1.5, top: 0 }}\n            stackOffset={relative ? 'expand' : 'none'}\n          >\n            <YAxis domain={yAxisDomain as AxisDomain} hide />\n            <XAxis dataKey={index} hide />\n            {categories.map((category) => (\n              <Bar\n                animationDuration={animationDuration}\n                className={cx(css`\n                  fill: ${categoryColors.get(category) ?? cssVar.colorPrimary};\n                `)}\n                dataKey={category}\n                fill=\"\"\n                isAnimationActive={showAnimation}\n                key={category}\n                name={category}\n                stackId={stack || relative ? 'a' : undefined}\n                type=\"linear\"\n              />\n            ))}\n          </ReChartsBarChart>\n        ) : (\n          <NoData noDataText={noDataText} />\n        )}\n      </ResponsiveContainer>\n    </Flexbox>\n  );\n});\n\nSparkBarChart.displayName = 'SparkBarChart';\n\nexport default SparkBarChart;\n"],"mappings":";;;;;;;;;;;AAoBA,MAAM,gBAAgB,YAAgD,OAAO,QAAQ;CACnF,MAAM,kBAAkB,mBAAmB;CAC3C,MAAM,EACJ,OAAO,CAAC,GACR,aAAa,CAAC,GACd,OACA,SAAS,iBACT,QAAQ,OACR,WAAW,OACX,oBAAoB,KACpB,gBAAgB,OAChB,aAAa,oBAAC,OAAD,CAAM,CAAA,GACnB,SACA,eAAe,OACf,UACA,UACA,WACA,QAAQ,KACR,SAAS,IACT,OACA,GAAG,SACD;CAEJ,IAAI,WAAW,CAAC,MAAM,OAAO,oBAAC,UAAD;EAAkB;EAAe;CAAQ,CAAA;CAEtE,MAAM,iBAAiB,wBAAwB,YAAY,MAAM;CACjE,MAAM,cAAc,eAAe,cAAc,UAAU,QAAQ;CAEnE,OACE,oBAAC,SAAD;EACa;EACH;EACH;EACL,OAAO;GAAE,UAAU;GAAY,GAAG;EAAM;EACjC;EACP,GAAI;EAEJ,UAAA,oBAAC,qBAAD,EAAA,UACG,MAAM,SACL,qBAACA,UAAD;GACQ;GACN,QAAQ;IAAE,QAAQ;IAAG,MAAM;IAAM,OAAO;IAAM,KAAK;GAAE;GACrD,aAAa,WAAW,WAAW;GAHrC,UAAA;IAKE,oBAAC,OAAD;KAAO,QAAQ;KAA2B,MAAA;IAAM,CAAA;IAChD,oBAAC,OAAD;KAAO,SAAS;KAAO,MAAA;IAAM,CAAA;IAC5B,WAAW,KAAK,aACf,oBAAC,KAAD;KACqB;KACnB,WAAW,GAAG,GAAG;0BACP,eAAe,IAAI,QAAQ,KAAK,OAAO,aAAa;iBAC7D;KACD,SAAS;KACT,MAAK;KACL,mBAAmB;KAEnB,MAAM;KACN,SAAS,SAAS,WAAW,MAAM,KAAA;KACnC,MAAK;IACN,GAJM,QAIN,CACF;GACe;EAElB,CAAA,IAAA,oBAAC,QAAD,EAAoB,WAAa,CAAA,EAEhB,CAAA;CACd,CAAA;AAEb,CAAC;AAED,cAAc,cAAc"}