{"version":3,"file":"SparkAreaChart.mjs","names":["ReChartsAreaChart"],"sources":["../../src/SparkChart/SparkAreaChart.tsx"],"sourcesContent":["'use client';\n\nimport { Flexbox, Skeleton, css, cssVar, cx } from '@lobehub/ui';\nimport { forwardRef } from 'react';\nimport { Area, AreaChart as ReChartsAreaChart, 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';\nimport { CurveType } from '@/types/charts';\n\nexport interface SparkAreaChartProps extends BaseSparkChartProps {\n  connectNulls?: boolean;\n  curveType?: CurveType;\n  loading?: boolean;\n  showGradient?: boolean;\n  stack?: boolean;\n}\n\nconst SparkAreaChart = forwardRef<HTMLDivElement, SparkAreaChartProps>((props, ref) => {\n  const themeColorRange = useThemeColorRange();\n\n  const {\n    data = [],\n    categories = [],\n    index,\n    stack = false,\n    colors = themeColorRange,\n    showAnimation = false,\n    animationDuration = 900,\n    showGradient = true,\n    curveType = 'linear',\n    connectNulls = false,\n    noDataText = <div />,\n    autoMinValue = false,\n    loading,\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          <ReChartsAreaChart data={data} margin={{ bottom: 1, left: 1, right: 1, top: 1 }}>\n            <YAxis domain={yAxisDomain as AxisDomain} hide />\n            <XAxis dataKey={index} hide />\n            {categories.map((category) => {\n              return (\n                <defs key={category}>\n                  {showGradient ? (\n                    <linearGradient\n                      className={cx(css`\n                        color: ${categoryColors.get(category) ?? cssVar.colorPrimary};\n                      `)}\n                      id={categoryColors.get(category)}\n                      x1=\"0\"\n                      x2=\"0\"\n                      y1=\"0\"\n                      y2=\"1\"\n                    >\n                      <stop offset=\"5%\" stopColor=\"currentColor\" stopOpacity={0.4} />\n                      <stop offset=\"95%\" stopColor=\"currentColor\" stopOpacity={0} />\n                    </linearGradient>\n                  ) : (\n                    <linearGradient\n                      className={cx(css`\n                        color: ${categoryColors.get(category) ?? cssVar.colorPrimary};\n                      `)}\n                      id={categoryColors.get(category)}\n                      x1=\"0\"\n                      x2=\"0\"\n                      y1=\"0\"\n                      y2=\"1\"\n                    >\n                      <stop stopColor=\"currentColor\" stopOpacity={0.3} />\n                    </linearGradient>\n                  )}\n                </defs>\n              );\n            })}\n            {categories.map((category) => (\n              <Area\n                animationDuration={animationDuration}\n                className={cx(css`\n                  stroke: ${categoryColors.get(category) ?? cssVar.colorPrimary};\n                `)}\n                connectNulls={connectNulls}\n                dataKey={category}\n                dot={false}\n                fill={`url(#${categoryColors.get(category)})`}\n                isAnimationActive={showAnimation}\n                key={category}\n                name={category}\n                stackId={stack ? 'a' : undefined}\n                stroke=\"\"\n                strokeLinecap=\"round\"\n                strokeLinejoin=\"round\"\n                strokeOpacity={1}\n                strokeWidth={2}\n                type={curveType}\n              />\n            ))}\n          </ReChartsAreaChart>\n        ) : (\n          <NoData noDataText={noDataText} />\n        )}\n      </ResponsiveContainer>\n    </Flexbox>\n  );\n});\n\nSparkAreaChart.displayName = 'AreaChart';\n\nexport default SparkAreaChart;\n"],"mappings":";;;;;;;;;AAqBA,MAAM,iBAAiB,YAAiD,OAAO,QAAQ;CACrF,MAAM,kBAAkB,mBAAmB;CAE3C,MAAM,EACJ,OAAO,CAAC,GACR,aAAa,CAAC,GACd,OACA,QAAQ,OACR,SAAS,iBACT,gBAAgB,OAChB,oBAAoB,KACpB,eAAe,MACf,YAAY,UACZ,eAAe,OACf,aAAa,oBAAC,OAAD,CAAM,CAAA,GACnB,eAAe,OACf,SACA,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,WAAD;GAAyB;GAAM,QAAQ;IAAE,QAAQ;IAAG,MAAM;IAAG,OAAO;IAAG,KAAK;GAAE;GAA9E,UAAA;IACE,oBAAC,OAAD;KAAO,QAAQ;KAA2B,MAAA;IAAM,CAAA;IAChD,oBAAC,OAAD;KAAO,SAAS;KAAO,MAAA;IAAM,CAAA;IAC5B,WAAW,KAAK,aAAa;KAC5B,OACE,oBAAC,QAAD,EAAA,UACG,eACC,qBAAC,kBAAD;MACE,WAAW,GAAG,GAAG;iCACN,eAAe,IAAI,QAAQ,KAAK,OAAO,aAAa;uBAC9D;MACD,IAAI,eAAe,IAAI,QAAQ;MAC/B,IAAG;MACH,IAAG;MACH,IAAG;MACH,IAAG;MARL,UAAA,CAUE,oBAAC,QAAD;OAAM,QAAO;OAAK,WAAU;OAAe,aAAa;MAAM,CAAA,GAC9D,oBAAC,QAAD;OAAM,QAAO;OAAM,WAAU;OAAe,aAAa;MAAI,CAAA,CAC/C;KAEhB,CAAA,IAAA,oBAAC,kBAAD;MACE,WAAW,GAAG,GAAG;iCACN,eAAe,IAAI,QAAQ,KAAK,OAAO,aAAa;uBAC9D;MACD,IAAI,eAAe,IAAI,QAAQ;MAC/B,IAAG;MACH,IAAG;MACH,IAAG;MACH,IAAG;MAEH,UAAA,oBAAC,QAAD;OAAM,WAAU;OAAe,aAAa;MAAM,CAAA;KACpC,CAAA,EAEd,GA7BK,QA6BL;IAEV,CAAC;IACA,WAAW,KAAK,aACf,oBAAC,MAAD;KACqB;KACnB,WAAW,GAAG,GAAG;4BACL,eAAe,IAAI,QAAQ,KAAK,OAAO,aAAa;iBAC/D;KACa;KACd,SAAS;KACT,KAAK;KACL,MAAM,QAAQ,eAAe,IAAI,QAAQ,EAAE;KAC3C,mBAAmB;KAEnB,MAAM;KACN,SAAS,QAAQ,MAAM,KAAA;KACvB,QAAO;KACP,eAAc;KACd,gBAAe;KACf,eAAe;KACf,aAAa;KACb,MAAM;IACP,GATM,QASN,CACF;GACgB;EAEnB,CAAA,IAAA,oBAAC,QAAD,EAAoB,WAAa,CAAA,EAEhB,CAAA;CACd,CAAA;AAEb,CAAC;AAED,eAAe,cAAc"}