{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/common/ChartTooltip/index.tsx"],"sourcesContent":["import { Flexbox, Text, createStaticStyles, cssVar, cx } from '@lobehub/ui';\nimport { ReactNode } from 'react';\n\nimport { ValueFormatter } from '@/types/charts';\n\nimport ChartTooltipFrame from './ChartTooltipFrame';\nimport ChartTooltipRow from './ChartTooltipRow';\n\nconst styles = createStaticStyles(({ css, cssVar }) => ({\n  header: css`\n    border-bottom: 1px solid ${cssVar.colorBorderSecondary};\n    font-weight: 500;\n  `,\n}));\n\nexport interface ChartTooltipProps {\n  active: boolean | undefined;\n  categoryColors: Map<string, string>;\n  customCategories?: {\n    [key: string]: string;\n  };\n  footer?: ReactNode;\n  label: string;\n  payload: any;\n  valueFormatter: ValueFormatter | ((value: number, name?: string) => string);\n}\n\nconst ChartTooltip = ({\n  active,\n  payload,\n  label,\n  categoryColors,\n  valueFormatter,\n  customCategories,\n  footer,\n}: ChartTooltipProps) => {\n  if (active && payload) {\n    const filteredPayload = payload.filter((item: any) => item.type !== 'none');\n\n    return (\n      <ChartTooltipFrame>\n        <Flexbox className={cx(styles.header)} paddingBlock={8} paddingInline={16} width={'auto'}>\n          <Text ellipsis style={{ margin: 0 }}>\n            {label}\n          </Text>\n        </Flexbox>\n        <Flexbox\n          gap={4}\n          paddingBlock={8}\n          paddingInline={16}\n          style={{ flexDirection: 'column-reverse', marginTop: 4 }}\n          width={'auto'}\n        >\n          {filteredPayload.map(({ value, name }: { name: string; value: number }, idx: number) => (\n            <ChartTooltipRow\n              color={categoryColors.get(name) ?? cssVar.colorPrimary}\n              key={`id-${idx}`}\n              name={customCategories?.[name] || name}\n              value={valueFormatter(value, name)}\n            />\n          ))}\n        </Flexbox>\n        {footer}\n      </ChartTooltipFrame>\n    );\n  }\n  return null;\n};\n\nexport default ChartTooltip;\n"],"mappings":";;;;;AAQA,MAAM,SAAS,oBAAoB,EAAE,KAAK,cAAc,EACtD,QAAQ,GAAG;+BACkB,OAAO,qBAAqB;;IAG3D,EAAE;AAcF,MAAM,gBAAgB,EACpB,QACA,SACA,OACA,gBACA,gBACA,kBACA,aACuB;CACvB,IAAI,UAAU,SAAS;EACrB,MAAM,kBAAkB,QAAQ,QAAQ,SAAc,KAAK,SAAS,MAAM;EAE1E,OACE,qBAAC,mBAAD,EAAA,UAAA;GACE,oBAAC,SAAD;IAAS,WAAW,GAAG,OAAO,MAAM;IAAG,cAAc;IAAG,eAAe;IAAI,OAAO;IAChF,UAAA,oBAAC,MAAD;KAAM,UAAA;KAAS,OAAO,EAAE,QAAQ,EAAE;KAC/B,UAAA;IACG,CAAA;GACC,CAAA;GACT,oBAAC,SAAD;IACE,KAAK;IACL,cAAc;IACd,eAAe;IACf,OAAO;KAAE,eAAe;KAAkB,WAAW;IAAE;IACvD,OAAO;IAEN,UAAA,gBAAgB,KAAK,EAAE,OAAO,QAAyC,QACtE,oBAAC,iBAAD;KACE,OAAO,eAAe,IAAI,IAAI,KAAK,OAAO;KAE1C,MAAM,mBAAmB,SAAS;KAClC,OAAO,eAAe,OAAO,IAAI;IAClC,GAHM,MAAM,KAGZ,CACF;GACM,CAAA;GACR;EACgB,EAAA,CAAA;CAEvB;CACA,OAAO;AACT"}