{"version":3,"file":"ChipSection.mjs","names":["React","Chip","Divider","Tooltip","Typography","makeStyles","StarIcon","PropTypes","useRef","useState","DynamicContainerWithMenu","useStyles","theme","wrapper","display","gap","spacing","flexWrap","backgroundColor","palette","secondary","light","alignItems","flexGrow","width","chipHolder","overflow","viewChip","main","color","maxWidth","transition","marginLeft","menuItem","filterChipMenuIcon","background","common","grey","padding","primary","additionalFilterChip","KPI","kpiValue","fontSize","kpiItem","justifyContent","kpiLabel","marginRight","clickedChip","filterChipLabel","text","whiteSpace","filterChipValue","ChipSection","props","$","_c","filterChips","t0","viewChips","t1","additionalFilterChips","t2","hideKpiSection","t3","kpiValues","t4","maxKPIsDisplayed","t5","handleDelete","undefined","classes","t6","Symbol","for","chipRefs","chipSectionContainerRef","viewChipsContainerRef","filterChipsContainerRef","additionalFilterChipsContainerRef","kpiContainerRef","selectedFilterChip","setSelectedFilterChip","abbrNum","_temp","isEmpty","_temp2","abbreviateLabel","_temp3","t7","chip","onToggle","handleFilterChipToggle","t8","onUntoggle","handleFilterChipUntoggle","t9","every","_temp4","t10","t11","chip_0","index","label","t12","t13","chip_2","index_1","map","chip_1","index_0","id","value","filterChip","el","current","slice","kpi","index_2","propTypes","arrayOf","shape","string","isRequired","bool","oneOfType","number","func","selectedFilterChipsIndex","setSelectedFilterChipsIndex","decPlaces","isNaN","Number","Error","Math","pow","abbrev","i","length","size","round","array","Array","isArray","newLabel","arr"],"sources":["../../../src/UI/utilityDisplay/ChipSection.jsx"],"sourcesContent":["import React from \"react\";\nimport Chip from '@material-ui/core/Chip';\nimport Divider from '@material-ui/core/Divider';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport StarIcon from '@material-ui/icons/esm/Star';\nimport PropTypes from 'prop-types';\nimport { useRef, useState } from 'react';\nimport { DynamicContainerWithMenu } from '../containers/DynamicContainerWithMenu';\n\nconst useStyles = makeStyles((theme) => ({\n  wrapper: {\n    display: 'flex',\n    gap: theme.spacing(1),\n    flexWrap: 'noWrap',\n    backgroundColor: `${theme.palette.secondary.light}80`, // The \"80\" sets the opacity to 0.5\n    alignItems: 'center',\n    flexGrow: 1,\n    width: '100%'\n  },\n  chipHolder: {\n    display: 'flex',\n    gap: theme.spacing(1),\n    flexWrap: 'noWrap',\n    backgroundColor: `${theme.palette.secondary.light}80`, // The \"80\" sets the opacity to 0.5\n    alignItems: 'center',\n    overflow: 'scroll',\n    '&::-webkit-scrollbar': {\n      display: 'none'\n    },\n    flexGrow: 1\n  },\n  viewChip: {\n    backgroundColor: theme.palette.secondary.main,\n    color: 'white',\n    maxWidth: '150px',\n    transition: 'opacity 0.3s ease',\n    marginLeft: theme.spacing(1)\n  },\n  menuItem: {\n    backgroundColor: 'white'\n  },\n  filterChipMenuIcon: {\n    background: theme.palette.common.grey,\n    padding: theme.spacing(1),\n    color: theme.palette.primary.main\n  },\n  additionalFilterChip: {},\n  KPI: {\n    marginLeft: 'auto',\n    display: 'flex',\n    gap: theme.spacing(1),\n    color: 'grey',\n    width: 'auto'\n  },\n  kpiValue: {\n    color: 'black',\n    fontSize: '1.1em'\n  },\n  kpiItem: {\n    display: 'flex',\n    justifyContent: 'center',\n    width: 'max-content'\n  },\n  kpiLabel: {\n    width: 'max-content',\n    marginRight: theme.spacing(1)\n  },\n  clickedChip: {\n    backgroundColor: theme.palette.primary.main,\n    color: 'white',\n    maxWidth: '150px'\n  },\n  filterChipLabel: {\n    color: theme.palette.text.primary,\n    whiteSpace: 'nowrap',\n    marginRight: theme.spacing(1)\n  },\n  filterChipValue: {\n    color: theme.palette.text.secondary,\n    whiteSpace: 'nowrap'\n  }\n}));\n\nexport const ChipSection = (props) => {\n  // ################### Props ###################\n  const {\n    filterChips = [],\n    viewChips = [],\n    additionalFilterChips = [],\n    hideKpiSection = false,\n    kpiValues = [],\n    maxKPIsDisplayed = 4,\n    handleDelete\n  } = props;\n\n  // ################### Custom hooks ###################\n  const classes = useStyles();\n\n  // ################### Refs ###################\n  const chipRefs = useRef([]);\n  const chipSectionContainerRef = useRef(null);\n  const viewChipsContainerRef = useRef(null);\n  const filterChipsContainerRef = useRef(null);\n  const additionalFilterChipsContainerRef = useRef(null);\n  const kpiContainerRef = useRef(null);\n\n  // ################### States ###################\n  const [selectedFilterChip, setSelectedFilterChip] = useState(null);\n\n  // ################### Helper Function ###################\n  const abbrNum = (number, decPlaces) => {\n    if (typeof number === 'string' && !isNaN(Number(number))) {\n      number = Number(number);\n    } else if (typeof number !== 'number') {\n      throw new Error(\n        'The input must be a number or a string that can be converted to a number.'\n      );\n    }\n\n    if (typeof decPlaces !== 'number') {\n      return null;\n    }\n\n    decPlaces = Math.pow(10, decPlaces);\n    let abbrev = ['k', 'm', 'b', 't'];\n\n    for (let i = abbrev.length - 1; i >= 0; i--) {\n      let size = Math.pow(10, (i + 1) * 3);\n\n      if (size <= number) {\n        number = Math.round((number * decPlaces) / size) / decPlaces;\n\n        if (number === 1000 && i < abbrev.length - 1) {\n          number = 1;\n          i++;\n        }\n\n        number += abbrev[i];\n        break;\n      }\n    }\n\n    return number;\n  };\n\n  const isEmpty = (array) => Array.isArray(array) && array.length === 0;\n\n  const abbreviateLabel = (label) => {\n    const maxLength = 10;\n\n    if (label.length > maxLength) {\n      const newLabel = label.slice(0, maxLength - 3) + '...';\n      return newLabel;\n    } else {\n      return null;\n    }\n  };\n\n  const handleFilterChipToggle = (chip) => {\n    setSelectedFilterChip(chip);\n\n    if (typeof chip.onToggle === 'function') {\n      chip.onToggle();\n    }\n  };\n\n  const handleFilterChipUntoggle = () => {\n    if (selectedFilterChip) {\n      // if the user wants extra functionality when the filter chip is untoggled, call the function\n      if (typeof selectedFilterChip.onUntoggle === 'function') {\n        selectedFilterChip.onUntoggle();\n      }\n\n      setSelectedFilterChip(null);\n    }\n  };\n\n  // ################### Render ###################\n  return (\n    <div\n      ref={chipSectionContainerRef}\n      className={classes.wrapper}\n      style={{\n        display: [\n          kpiValues,\n          additionalFilterChips,\n          viewChips,\n          filterChips\n        ].every((arr) => arr.length === 0)\n          ? 'none'\n          : 'flex'\n      }}\n    >\n      <div className={classes.chipHolder}>\n        <div ref={viewChipsContainerRef}>\n          {viewChips.map((chip, index) => (\n            <Chip\n              onDelete={() => handleDelete('view', index)}\n              key={index}\n              label={chip.label}\n              className={classes.viewChip}\n              icon={<StarIcon />}\n              size='small'\n            />\n          ))}\n        </div>\n\n        {!isEmpty(viewChips) && !isEmpty(filterChips) && (\n          <Divider orientation='vertical' flexItem />\n        )}\n\n        {!isEmpty(filterChips) && (\n          <DynamicContainerWithMenu\n            className={classes.chipHolder}\n            ref={filterChipsContainerRef}\n          >\n            {selectedFilterChip && (\n              <Chip\n                onDelete={handleFilterChipUntoggle}\n                label={selectedFilterChip.label}\n                className={classes.viewChip}\n                size='small'\n              />\n            )}\n            {filterChips.map((chip, index) => {\n              if (selectedFilterChip && chip.id === selectedFilterChip.id) {\n                return null;\n              }\n              return (\n                <Tooltip title={chip.label}>\n                  <Chip\n                    key={index}\n                    label={\n                      <div\n                        style={{\n                          display: 'flex',\n                          flexWrap: 'noWrap'\n                        }}\n                      >\n                        <Typography\n                          noWrap={true}\n                          className={chip.value ? classes.filterChipLabel : ''}\n                        >\n                          {chip.label}\n                        </Typography>\n                        <Typography\n                          noWrap={true}\n                          className={classes.filterChipValue}\n                        >\n                          {chip.value}\n                        </Typography>\n                      </div>\n                    }\n                    className={classes.filterChip}\n                    size='small'\n                    onClick={() => handleFilterChipToggle(chip)}\n                    ref={(el) => (chipRefs.current[index] = el)}\n                  />\n                </Tooltip>\n              );\n            })}\n          </DynamicContainerWithMenu>\n        )}\n\n        {!isEmpty(additionalFilterChips) && !isEmpty(filterChips) && (\n          <Divider orientation='vertical' flexItem />\n        )}\n\n        <div\n          ref={additionalFilterChipsContainerRef}\n          style={{ display: 'flex' }}\n        >\n          {additionalFilterChips.map((chip, index) => (\n            <Chip\n              variant='outlined'\n              onDelete={() => handleDelete('additionalFilter', index)}\n              key={index}\n              label={chip.label}\n              className={classes.additionalFilterChip}\n              size='small'\n            />\n          ))}\n        </div>\n      </div>\n\n      {!hideKpiSection && (\n        <div className={classes.KPI} ref={kpiContainerRef}>\n          {kpiValues.slice(0, 4).map((kpi, index) => (\n            <>\n              <div className={classes.kpiItem} id={index}>\n                <span className={classes.kpiLabel}>\n                  {(abbreviateLabel(kpi.label) && (\n                    <Tooltip title={kpi.label} arrow>\n                      <Typography noWrap={true}>\n                        <span>{kpi.label}:</span>\n                      </Typography>\n                    </Tooltip>\n                  )) || <>{kpi.label}</>}\n                </span>\n                <span className={classes.kpiValue}>\n                  <Tooltip title={kpi.value} arrow>\n                    <span>{abbrNum(kpi.value, 1)}</span>\n                  </Tooltip>\n                </span>\n              </div>\n              {index !== maxKPIsDisplayed - 1 && (\n                <Divider orientation='vertical' flexItem />\n              )}\n            </>\n          ))}\n        </div>\n      )}\n    </div>\n  );\n};\n\nChipSection.propTypes = {\n  /**\n   * An array of filter chips.\n   */\n  filterChips: PropTypes.arrayOf(\n    PropTypes.shape({\n      label: PropTypes.string.isRequired,\n      value: PropTypes.string.isRequired\n    })\n  ),\n  /**\n   * An array of view chips.\n   */\n  viewChips: PropTypes.arrayOf(\n    PropTypes.shape({\n      label: PropTypes.string.isRequired\n    })\n  ),\n  /**\n   * An array of additional filter chips.\n   */\n  additionalFilterChips: PropTypes.arrayOf(\n    PropTypes.shape({\n      label: PropTypes.string.isRequired\n    })\n  ),\n  /**\n   * Indicates whether to hide the KPI section.\n   */\n  hideKpiSection: PropTypes.bool,\n  /**\n   * An array of KPI values.\n   */\n  kpiValues: PropTypes.arrayOf(\n    PropTypes.shape({\n      label: PropTypes.string.isRequired,\n      value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n        .isRequired\n    })\n  ),\n  /**\n   * The maximum number of KPIs to display.\n   */\n  maxKPIsDisplayed: PropTypes.number,\n  /**\n   * A function to handle chip deletion.\n   */\n  handleDelete: PropTypes.func,\n  /**\n   * The index of the selected filter chip.\n   */\n  selectedFilterChipsIndex: PropTypes.number,\n  /**\n   * A function to set the selected filter chip index.\n   */\n  setSelectedFilterChipsIndex: PropTypes.func\n};\n"],"mappings":"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"}