{"version":3,"file":"GridGroupingSidebar.mjs","names":["React","useState","makeStyles","Typography","useTranslation","GridSidebarContainer","GridGroupingHeader","AssessmentGroupIcon","ChromeCloseIcon","Token","AmbientToggleButton","AmbientToggleButtonGroupDefault","PropTypes","useStyles","theme","root","groupActionContainer","display","flexDirection","flexWrap","alignContent","buttonRoot","textTransform","fontWeight","justifyContent","buttonGroupWrapper","gap","spacing","GridGroupingSidebar","t0","$","_c","groupItem","expandClick","collapseClick","closeClick","groupingData","height","color","t1","undefined","classes","t","view","setView","t2","Symbol","for","event","nextView","handleChange","GroupItem","_temp","t3","t4","t5","t6","t7","t8","item","value","label","map","defaultValue","t9","t10","t11","t12","t13","t14","propTypes","func","array","string","clear"],"sources":["../../../../src/UI/templates/ui/GridGroupingSidebar.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { GridSidebarContainer } from './GridSidebarContainer';\nimport { GridGroupingHeader } from './GridGroupingHeader';\nimport { AssessmentGroupIcon, ChromeCloseIcon } from '@fluentui/react-icons';\nimport { Token } from '../../components/dataDisplay/Token';\nimport { AmbientToggleButton } from '../../inputs/buttons/AmbientToggleButton';\nimport AmbientToggleButtonGroupDefault from '../../inputs/buttons/AmbientToggleButtonGroupDefault';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {},\n  groupActionContainer: {\n    display: 'flex',\n    flexDirection: 'column',\n    flexWrap: 'wrap',\n    alignContent: 'space-around'\n  },\n  buttonRoot: {\n    textTransform: 'none',\n    fontWeight: 700,\n    justifyContent: 'flex-start'\n  },\n  buttonGroupWrapper: {\n    gap: theme.spacing(2)\n  }\n}));\n\nexport const GridGroupingSidebar = ({\n  groupItem,\n  expandClick,\n  collapseClick,\n  closeClick,\n  groupingData,\n  height,\n  color = '#F5F2F8'\n}) => {\n  const classes = useStyles();\n  const { t } = useTranslation();\n\n  const [view, setView] = useState('');\n\n  const handleChange = (event, nextView) => {\n    setView(nextView);\n  };\n\n  const GroupItem = ({ label, clear }) => {\n    return (\n      <>\n        <Token\n          icon={clear ? ChromeCloseIcon : AssessmentGroupIcon}\n          color='trigger'\n          size='small'\n          variant='filled'\n          type='icon'\n        />\n        <Typography variant='caption' style={{ color: 'black' }}>\n          {' '}\n          {label}{' '}\n        </Typography>\n      </>\n    );\n  };\n\n  return (\n    <div className={classes.root}>\n      <GridSidebarContainer color={color} height={height}>\n        <GridGroupingHeader\n          expandClick={expandClick}\n          collapseClick={collapseClick}\n          closeClick={closeClick}\n        />\n        <div className={classes.groupActionContainer}>\n          <AmbientToggleButtonGroupDefault\n            orientation='vertical'\n            value={view}\n            exclusive\n            onChange={handleChange}\n            className={classes.buttonGroupWrapper}\n          >\n            {\n              // @todo: consider combining value and groupItem.\n              groupingData.map((item) => {\n                return (\n                  <AmbientToggleButton\n                    value={item.value}\n                    aria-label={item.label}\n                    onClick={() => groupItem(item.groupItem)}\n                  >\n                    <GroupItem label={item.label} />\n                  </AmbientToggleButton>\n                );\n              })\n            }\n            <AmbientToggleButton\n              value='noGroups'\n              aria-label='noGroups'\n              onClick={closeClick}\n            >\n              <GroupItem\n                label={t('grid.grouping.noGroups', { defaultValue: 'No Groups' })}\n                clear\n              />\n            </AmbientToggleButton>\n          </AmbientToggleButtonGroupDefault>\n        </div>\n      </GridSidebarContainer>\n    </div>\n  );\n};\nGridGroupingSidebar.propTypes = {\n  /**\n   * Function to pass along grid grouping\n   */\n  groupItem: PropTypes.func,\n  /**\n   * Expand Grouped items on grid\n   */\n  expandClick: PropTypes.func,\n  /**\n   * Collapse grouped items on grid\n   */\n  collapseClick: PropTypes.func,\n  /**\n   * Clear grouped items\n   */\n  closeClick: PropTypes.func,\n  /**\n   * Array of data to create grouping list. Example: {groupItem: 'instructors', label: 'Instructors', value: 'instructors'},\n   */\n  groupingData: PropTypes.array,\n  /**\n   * Color of the sidebar\n   */\n  color: PropTypes.string\n};\n"],"mappings":"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"}