{"version":3,"file":"FluentStatsSnippet.mjs","names":["React","Typography","makeStyles","FluentTrendArrow","useStyles","theme","root","percent","display","flexDirection","marginTop","spacing","arrow","justifyContent","percentAmount","FluentStatsSnippet","props","$","_c","classes","label","amount","rawAmount","prevAmount","percentProp","trend","trendProp","Math","abs","newNumber","t0","round","t1","newNumber_0","ratio","roundTo","_temp","stat","t2","t3","t4","t5","t6","t7","value","step"],"sources":["../../../../../src/UI/widgets/FluentComponents/atoms/FluentStatsSnippet.jsx"],"sourcesContent":["import React from 'react';\nimport { Typography, makeStyles } from '@material-ui/core';\nimport FluentTrendArrow from './FluentTrendArrow';\n\nconst useStyles = makeStyles(theme => ({\n  root: {},\n  percent: {\n    display: 'flex',\n    flexDirection: 'row',\n    marginTop: theme.spacing(-0.5),\n  },\n  arrow: {\n    display: 'flex',\n    flexDirection: 'column',\n    justifyContent: 'center',\n  },\n  percentAmount: {},\n}));\n\nconst FluentStatsSnippet = props => {\n  const classes = useStyles(props);\n  const {\n    label,\n    amount: rawAmount,\n    prevAmount,\n    percent: percentProp,\n    trend: trendProp,\n  } = props;\n\n  // @todo Use an Intl formatter\n  let amount = rawAmount;\n  // TODO: Revisit below after Tampa Demo\n  if (Math.abs(rawAmount) > 1_000_000) {\n    //amount = Math.floor(rawAmount / 1_000_000) + 'M';\n    let newNumber = rawAmount / 1_000_000;\n    amount = [Math.round(newNumber * 10) / 10, 'M'];\n  } else if (Math.abs(rawAmount) > 1_000) {\n    //amount = Math.floor(rawAmount / 1_000) + 'K';\n    let newNumber = rawAmount / 1_000;\n    amount = [Math.round(newNumber * 10) / 10, 'K'];\n  }\n\n  let percent = percentProp;\n  let trend = trendProp;\n  if (typeof prevAmount === 'number') {\n    const ratio = (rawAmount - prevAmount) / prevAmount;\n\n    const roundTo = (value, step) => {\n      if (typeof value !== 'number' || typeof step !== 'number' || step === 0) return value;\n      return Math.round(value / step) * step;\n    };\n\n    percent =\n      Math.abs(roundTo(ratio * 100, Math.abs(ratio) < 0.01 ? 0.01 : 1)) + '%';\n    trend = ratio < 0 ? 'down' : 'up';\n  }\n\n  return (\n    <div className={classes.root}>\n      <Typography variant=\"overline\" component=\"div\">\n        {label}\n      </Typography>\n      <Typography className={classes.stat} variant=\"h5\" component=\"div\">\n        {amount}\n      </Typography>\n      <div className={classes.percent}>\n        <div className={classes.arrow}>\n          <FluentTrendArrow type={trend} />\n        </div>\n        <div className={classes.percentAmount}>\n          <Typography variant=\"caption\">{percent}</Typography>\n        </div>\n      </div>\n    </div>\n  );\n};\nexport default FluentStatsSnippet;\n"],"mappings":"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"}