{"version":3,"file":"DeltaBar.mjs","names":[],"sources":["../../src/DataBars/DeltaBar.tsx"],"sourcesContent":["'use client';\n\nimport { Flexbox, FlexboxProps, Tooltip, cssVar, cx } from '@lobehub/ui';\nimport { ReactNode, forwardRef } from 'react';\n\nimport { DeltaTypes } from '@/types/charts';\nimport { mapInputsToDeltaType } from '@/utils';\n\nimport { styles } from './styles';\n\nconst getDeltaType = (value: number) => (value >= 0 ? DeltaTypes.Increase : DeltaTypes.Decrease);\n\nexport interface DeltaBarProps extends FlexboxProps {\n  bgColors?: string;\n  color?: string;\n  isIncreasePositive?: boolean;\n  showAnimation?: boolean;\n  size?: number;\n  tooltip?: ReactNode;\n  value: number;\n}\n\nconst DeltaBar = forwardRef<HTMLDivElement, DeltaBarProps>((props, ref) => {\n  const {\n    value,\n    bgColors,\n    color,\n    isIncreasePositive = true,\n    showAnimation = false,\n    className,\n    tooltip,\n    width = '100%',\n    size = 8,\n    style,\n    ...rest\n  } = props;\n  const deltaType = mapInputsToDeltaType(getDeltaType(value), isIncreasePositive);\n\n  const colors = {\n    [DeltaTypes.Increase]: cssVar.colorSuccess,\n    [DeltaTypes.ModerateIncrease]: cssVar.colorSuccess,\n    [DeltaTypes.Decrease]: cssVar.colorError,\n    [DeltaTypes.ModerateDecrease]: cssVar.colorError,\n    [DeltaTypes.Unchanged]: cssVar.colorWarning,\n  };\n\n  return (\n    <Tooltip title={tooltip}>\n      <Flexbox\n        align={'center'}\n        className={className}\n        height={size}\n        horizontal\n        ref={ref}\n        style={{\n          position: 'relative',\n          ...style,\n        }}\n        width={width}\n        {...rest}\n      >\n        <Flexbox\n          height={'100%'}\n          style={{\n            background: bgColors || cssVar.colorFillTertiary,\n            borderRadius: size / 2,\n            inset: 0,\n            opacity: bgColors ? 0.2 : 1,\n            position: 'absolute',\n            zIndex: 0,\n          }}\n          width={'100%'}\n        />\n        <Flexbox\n          align={'center'}\n          flex={1}\n          height={'100%'}\n          horizontal\n          justify={'flex-end'}\n          style={{ position: 'relative' }}\n        >\n          {value < 0 ? (\n            <div\n              className={cx(showAnimation && styles.showAnimation)}\n              style={{\n                background: colors[deltaType],\n                borderBottomLeftRadius: size / 2,\n                borderTopLeftRadius: size / 2,\n                height: '100%',\n                width: `${Math.abs(value)}%`,\n              }}\n            />\n          ) : undefined}\n        </Flexbox>\n        <Flexbox\n          className={styles.marker}\n          flex={'none'}\n          style={{\n            background: color || cssVar.colorPrimary,\n            height: size + 8,\n            zIndex: 2,\n          }}\n        />\n        <Flexbox\n          align={'center'}\n          flex={1}\n          height={'100%'}\n          horizontal\n          justify={'flex-start'}\n          style={{ position: 'relative' }}\n        >\n          {value >= 0 ? (\n            <div\n              className={cx(showAnimation && styles.showAnimation)}\n              style={{\n                background: colors[deltaType],\n                borderBottomRightRadius: size / 2,\n                borderTopRightRadius: size / 2,\n                height: '100%',\n                width: `${Math.abs(value)}%`,\n              }}\n            />\n          ) : undefined}\n        </Flexbox>\n      </Flexbox>\n    </Tooltip>\n  );\n});\n\nDeltaBar.displayName = 'DeltaBar';\n\nexport default DeltaBar;\n"],"mappings":";;;;;;;;AAUA,MAAM,gBAAgB,UAAmB,SAAS,IAAI,WAAW,WAAW,WAAW;AAYvF,MAAM,WAAW,YAA2C,OAAO,QAAQ;CACzE,MAAM,EACJ,OACA,UACA,OACA,qBAAqB,MACrB,gBAAgB,OAChB,WACA,SACA,QAAQ,QACR,OAAO,GACP,OACA,GAAG,SACD;CACJ,MAAM,YAAY,qBAAqB,aAAa,KAAK,GAAG,kBAAkB;CAE9E,MAAM,SAAS;GACZ,WAAW,WAAW,OAAO;GAC7B,WAAW,mBAAmB,OAAO;GACrC,WAAW,WAAW,OAAO;GAC7B,WAAW,mBAAmB,OAAO;GACrC,WAAW,YAAY,OAAO;CACjC;CAEA,OACE,oBAAC,SAAD;EAAS,OAAO;EACd,UAAA,qBAAC,SAAD;GACE,OAAO;GACI;GACX,QAAQ;GACR,YAAA;GACK;GACL,OAAO;IACL,UAAU;IACV,GAAG;GACL;GACO;GACP,GAAI;GAXN,UAAA;IAaE,oBAAC,SAAD;KACE,QAAQ;KACR,OAAO;MACL,YAAY,YAAY,OAAO;MAC/B,cAAc,OAAO;MACrB,OAAO;MACP,SAAS,WAAW,KAAM;MAC1B,UAAU;MACV,QAAQ;KACV;KACA,OAAO;IACR,CAAA;IACD,oBAAC,SAAD;KACE,OAAO;KACP,MAAM;KACN,QAAQ;KACR,YAAA;KACA,SAAS;KACT,OAAO,EAAE,UAAU,WAAW;KAE7B,UAAA,QAAQ,IACP,oBAAC,OAAD;MACE,WAAW,GAAG,iBAAiB,OAAO,aAAa;MACnD,OAAO;OACL,YAAY,OAAO;OACnB,wBAAwB,OAAO;OAC/B,qBAAqB,OAAO;OAC5B,QAAQ;OACR,OAAO,GAAG,KAAK,IAAI,KAAK,EAAE;MAC5B;KACD,CAAA,IACC,KAAA;IACG,CAAA;IACT,oBAAC,SAAD;KACE,WAAW,OAAO;KAClB,MAAM;KACN,OAAO;MACL,YAAY,SAAS,OAAO;MAC5B,QAAQ,OAAO;MACf,QAAQ;KACV;IACD,CAAA;IACD,oBAAC,SAAD;KACE,OAAO;KACP,MAAM;KACN,QAAQ;KACR,YAAA;KACA,SAAS;KACT,OAAO,EAAE,UAAU,WAAW;KAE7B,UAAA,SAAS,IACR,oBAAC,OAAD;MACE,WAAW,GAAG,iBAAiB,OAAO,aAAa;MACnD,OAAO;OACL,YAAY,OAAO;OACnB,yBAAyB,OAAO;OAChC,sBAAsB,OAAO;OAC7B,QAAQ;OACR,OAAO,GAAG,KAAK,IAAI,KAAK,EAAE;MAC5B;KACD,CAAA,IACC,KAAA;IACG,CAAA;GACF;;CACF,CAAA;AAEb,CAAC;AAED,SAAS,cAAc"}