{"version":3,"file":"StatusFlags.mjs","names":["React","Box","Chip","Avatar","useTheme","makeStyles","lighten","Skeleton","PropTypes","useStyles","theme","rootContainer","alignItems","gap","flexWrap","flexDirection","skeleton","borderRadius","minWidth","AccountFlags","props","$","_c","isLoading","flagList","classes","t0","palette","success","light","t1","t2","textColor","backgroundColor","t3","warning","t4","t5","t6","error","t7","t8","t9","primary","t10","t11","t12","alert","info","SeverityRange","t13","length","map","item","index","label","t14","severity","t15","customColorRange","undefined","colorRange","background","selectedTextColor","toUpperCase","propTypes","bool","array","isRequired","object"],"sources":["../../../../src/UI/dataDisplay/status/StatusFlags.jsx"],"sourcesContent":["import React from 'react';\nimport { Box, Chip, Avatar, useTheme, makeStyles, lighten } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { PropTypes } from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n  rootContainer: {\n    alignItems: 'flex-end',\n    gap: '6px',\n    flexWrap: 'wrap',\n    flexDirection: 'row-reverse'\n  },\n  skeleton:{\n    borderRadius: '5px',\n    minWidth: '323px'\n  }\n}));\n\nexport const AccountFlags = (props) => {\n  const { isLoading, flagList } = props;\n\n  const classes = useStyles(props);\n  const theme = useTheme();\n  const lightValue = 0.5;\n\n  const SeverityRange = {\n    success: {\n      textColor: theme.palette.success.light,\n      backgroundColor: lighten(theme.palette.success.light, lightValue),\n    },\n    warning: {\n      textColor: theme.palette.warning.light,\n      backgroundColor: lighten(theme.palette.warning.light, lightValue),\n    },\n    alert: {\n      textColor: theme.palette.error.light,\n      backgroundColor: lighten(theme.palette.error.light, lightValue),\n    },\n    info: {\n      textColor: theme.palette.primary.light,\n      backgroundColor: lighten(theme.palette.primary.light, lightValue),\n    }\n  };\n\n  return (\n    <div>\n      {isLoading ? (\n        <Skeleton\n          variant='rect'\n          width='100%'\n          height='60px'\n          className={classes.skeleton}\n        />\n      ) : (\n        <Box display='flex' className={classes.rootContainer}>\n          {flagList &&\n            flagList.length > 0 &&\n            flagList.map((item, index) => {\n              const {\n                label = 'Default',\n                severity = 'info',\n                textColor,\n                backgroundColor,\n                customColorRange\n              } = item;\n\n              const colorRange = customColorRange ?? SeverityRange;\n              const background = backgroundColor || colorRange[severity]?.backgroundColor;\n              const selectedTextColor = textColor || colorRange[severity]?.textColor;\n\n              return (\n                <Chip\n                  label={label}\n                  avatar={\n                    <Avatar style={{ backgroundColor: selectedTextColor }}>\n                      {label[0]?.toUpperCase() || 'F'}\n                    </Avatar>\n                  }\n                  style={{ backgroundColor: background }}\n                />\n              );\n            })}\n        </Box>\n      )}\n    </div>\n  );\n};\n\nAccountFlags.propTypes = {\n  /** @type {?bool} loading indicator */\n  isLoading: PropTypes.bool,\n\n  /**\n   * @type {?array} list of flags to render, required array object structure e.g\n   * [{\n   *  label: 'Flag Name',\n   *  severity: 'Warning',       -- Determine the color of the flag\n   *  textColor: string,         -- optional text color, if it's not specified then it will use the severity object color'\n   *  backgroundColor: string,   -- optional background color, if it's not specified then it will use the severity object color'\n   * }]\n   */\n  flagList: PropTypes.array.isRequired,\n\n  /**\n   * @type {?object} optional object to specify custom or additional colors e.g\n   * {\n   *  success: {\n   *    textColor: '#4CAF50',\n   *    backgroundColor: 'rgba(76, 175, 80, 0.25)',\n   *  },\n   *  warning: {\n   *    textColor: '#FFB547',\n   *    backgroundColor: 'rgba(255, 152, 0, 0.25)',\n   *  }\n   * }\n   */\n  customColorRange: PropTypes.object\n};\n"],"mappings":"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"}