{"version":3,"file":"AlertPill.mjs","names":["React","memo","ButtonBase","makeStyles","Alert","SeverityTypeEnums","useStyles","theme","endRadius","spacing","root","display","flexDirection","overflow","flexGrow","alignSelf","alertRoot","padding","borderRadius","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","alertIcon","marginRight","buttonBase","defaultSeverityAlert","backgroundColor","palette","grey","MemoizedAlert","props","$","_c","count","hide","severity","alertProps","maxCount","label","classes","displayCount","Default","t0","Info","t1","displayName","AlertPill","variant","handleClick","errorCount","warningCount","successCount","infoCount","defaultCount","errorLabel","warningLabel","successLabel","infoLabel","defaultLabel","hideError","hideWarning","t2","hideSuccess","t3","hideInfo","t4","hideDefault","t5","undefined","t6","Symbol","for","filled","standard","outlined","text","variantMapping","t7","t8","icon","t9","t10","Error","t11","Warning","t12","Success","t13","t14","t15","t16"],"sources":["../../../../../src/UI/dataDisplay/entityHeader/ui/AlertPill.jsx"],"sourcesContent":["import React, { memo } from 'react';\nimport { ButtonBase, makeStyles } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { SeverityTypeEnums } from '../../../../enums/unitySystemEnums';\n\n/**\n * Styles for the AlertPill component\n */\n\nconst useStyles = makeStyles((theme) => {\n  const endRadius = theme.spacing(3);\n  return {\n    root: {\n      display: 'flex',\n      flexDirection: 'row',\n      // borderRadius: endRadius,\n      overflow: 'hidden',\n      flexGrow: 0,\n      alignSelf: 'start'\n    },\n    alertRoot: {\n      // mui alert class\n      padding: theme.spacing(0, 1.5, 0, 1),\n      borderRadius: 0,\n      '&:first-of-type': {\n        borderTopLeftRadius: endRadius,\n        borderBottomLeftRadius: endRadius\n      },\n      '&:last-of-type': {\n        borderTopRightRadius: endRadius,\n        borderBottomRightRadius: endRadius\n      }\n    },\n    alertIcon: {\n      // mui alert icon class\n      marginRight: theme.spacing(0.5)\n    },\n    buttonBase: {\n      borderRadius: endRadius,\n      overflow: 'hidden'\n    },\n    defaultSeverityAlert: {\n      backgroundColor: theme.palette.grey[400]\n    }\n  };\n});\n\n/**\n * Memoized version of the Alert component\n *\n * @param {object} props - Component props\n * @param {number} props.count - The count to display in the Alert\n * @param {boolean} props.hide - Whether the Alert should be hidden\n * @param {string} props.severity - The severity of the Alert\n * @param {object} props.alertProps - Additional props to pass to the Alert component\n * @param {number} props.maxCount - Max count to show before displaying as \"{maxCount}+\"\n * @returns {JSX.Element | null} - The Alert component, or null if the count is falsy or hide is true\n */\nconst MemoizedAlert = memo((props) => {\n  const { count, hide, severity, alertProps, maxCount, label } = props;\n  const classes = useStyles(props);\n\n  if (count && !hide) {\n    let displayCount = count;\n    if (maxCount && count > maxCount) {\n      displayCount = `${maxCount}+`;\n    }\n\n    if (severity === SeverityTypeEnums.Default) {\n      return (\n        <Alert\n          severity={SeverityTypeEnums.Info}\n          {...alertProps}\n          className={classes.defaultSeverityAlert}\n        >\n          {displayCount}\n        </Alert>\n      );\n    }\n\n    return (\n      <Alert severity={severity} {...alertProps}>\n        {label ? label : displayCount}\n      </Alert>\n    );\n  }\n\n  return null;\n});\n\nMemoizedAlert.displayName = 'MemoizedAlert';\n\n/**\n * The AlertPill component displays a row of Alerts, each with a count and a severity level.\n * Alerts can be hidden by setting the corresponding hide prop to true.\n *\n * @param {object} props - Component props\n * @param {function} [props.handleClick] - The click event handler.\n * @param {number} props.maxCount - Max count to show before displaying as \"{maxCount}+\"\n * @param {number} props.errorCount - The count for the error Alert\n * @param {number} props.warningCount - The count for the warning Alert\n * @param {number} props.successCount - The count for the success Alert\n * @param {number} props.infoCount - The count for the info Alert\n * @param {number} props.defaultCount - The count for the default Alert\n * @param {string} props.errorLabel - The label for the error Alert\n * @param {string} props.warningLabel - The label for the warning Alert\n * @param {string} props.successLabel - The label for the success Alert\n * @param {string} props.infoLabel - The label for the info Alert\n * @param {string} props.defaultLabel - The label for the default Alert\n * @param {boolean} props.hideError - Whether the error Alert should be hidden\n * @param {boolean} props.hideWarning - Whether the warning Alert should be hidden\n * @param {boolean} props.hideSuccess - Whether the success Alert should be hidden\n * @param {boolean} props.hideInfo - Whether the info Alert should be hidden\n * @param {boolean} props.hideDefault - Whether the default Alert should be hidden\n * @param {string} props.variant - The variant of the Alert\n * @param {function} [props.handleClick] - The click event handler.\n * @param {number} props.maxCount - Max count to show before displaying as \"{maxCount}+\"\n * @returns {JSX.Element} - The AlertPill component\n */\nexport const AlertPill = (props) => {\n  const {\n    variant = 'filled',\n    handleClick,\n    maxCount,\n    errorCount,\n    warningCount,\n    successCount,\n    infoCount,\n    defaultCount,\n    errorLabel,\n    warningLabel,\n    successLabel,\n    infoLabel,\n    defaultLabel,\n    hideError = false,\n    hideWarning = false,\n    hideSuccess = false,\n    hideInfo = false,\n    hideDefault = false\n  } = props;\n  const classes = useStyles(props);\n\n  const variantMapping = {\n    filled: 'filled',\n    standard: 'hint',\n    outlined: 'outlined',\n    text: ''\n  };\n\n  const alertProps = {\n    variant: variantMapping[variant],\n    classes: {\n      root: classes.alertRoot,\n      icon: classes.alertIcon\n    }\n  };\n\n  return (\n    <div className={classes.root}>\n      <ButtonBase onClick={handleClick} className={classes.buttonBase}>\n        <MemoizedAlert\n          count={errorCount}\n          hide={hideError}\n          severity={SeverityTypeEnums.Error}\n          alertProps={alertProps}\n          maxCount={maxCount}\n          label={errorLabel}\n        />\n        <MemoizedAlert\n          count={warningCount}\n          hide={hideWarning}\n          severity={SeverityTypeEnums.Warning}\n          alertProps={alertProps}\n          maxCount={maxCount}\n          label={warningLabel}\n        />\n        <MemoizedAlert\n          count={successCount}\n          hide={hideSuccess}\n          severity={SeverityTypeEnums.Success}\n          alertProps={alertProps}\n          maxCount={maxCount}\n          label={successLabel}\n        />\n        <MemoizedAlert\n          count={infoCount}\n          hide={hideInfo}\n          severity={SeverityTypeEnums.Info}\n          alertProps={alertProps}\n          maxCount={maxCount}\n          label={infoLabel}\n        />\n        <MemoizedAlert\n          count={defaultCount}\n          hide={hideDefault}\n          severity={SeverityTypeEnums.Default}\n          alertProps={alertProps}\n          maxCount={maxCount}\n          label={defaultLabel}\n        />\n      </ButtonBase>\n    </div>\n  );\n};\n"],"mappings":"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"}