{"version":3,"file":"AmbientToggleButtonGroup.mjs","names":["React","forwardRef","Children","isValidElement","cloneElement","isFragment","PropTypes","clsx","isValueSelected","makeStyles","capitalize","isDevelopment","useStyles","theme","item","marginRight","root","display","padding","vertical","flexDirection","grouped","groupedHorizontal","borderRadius","paddingRight","marginTop","AmbientToggleButtonGroup","AmbientToggleButton","props","ref","$","_c","children","className","onChange","other","t0","t1","t2","value","exclusive","orientation","size","undefined","classes","t3","event","buttonValue","index","indexOf","newValue","slice","splice","concat","handleChange","t4","event_0","buttonValue_0","handleExclusiveChange","t5","t6","t7","t8","child","console","error","join","selected","map","propTypes","node","object","string","bool","func","oneOf","any"],"sources":["../../../../src/UI/inputs/buttons/AmbientToggleButtonGroup.jsx"],"sourcesContent":["import React, {forwardRef, Children, isValidElement, cloneElement} from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport isValueSelected from '../../../utilities/isValueSelected';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { capitalize } from '@material-ui/core/utils';\nimport { isDevelopment } from '../../../utilities/env';\n\nconst useStyles = makeStyles((theme) => ({\n  item: {\n    marginRight: 8\n  },\n   /* Styles applied to the root element. */\n   root: {\n    display: 'inline-flex',\n    padding: 0\n  },\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {\n    flexDirection: 'column',\n  },\n  /* Styles applied to the children. */\n  grouped: {},\n  /* Styles applied to the children if `orientation=\"horizontal\"`. */\n  groupedHorizontal: {\n    borderRadius: 25,\n    padding: 0,\n    paddingRight: 16,\n  '&:not(:first-child)': {\n    marginTop: 16,\n    borderRadius: 25,\n    paddingRight: 16,\n    padding: 0\n  },\n  '&:not(:last-child)': {\n    padding: 0,\n    borderRadius: 25,\n    paddingRight: 16,\n  },\n\n   },\n}))\n\n\n\nexport const AmbientToggleButtonGroup = forwardRef(function AmbientToggleButton(props, ref) {\n  const {\n    children,\n    // classes,\n    className,\n    exclusive = false,\n    onChange,\n    orientation = 'horizontal',\n    size = 'medium',\n    value,\n    ...other\n  } = props;\n\n  const classes = useStyles()\n\n  const handleChange = (event, buttonValue) => {\n    if (!onChange) {\n      return;\n    }\n\n    const index = value && value.indexOf(buttonValue);\n    let newValue;\n\n    if (value && index >= 0) {\n      newValue = value.slice();\n      newValue.splice(index, 1);\n    } else {\n      newValue = value ? value.concat(buttonValue) : [buttonValue];\n    }\n\n    onChange(event, newValue);\n  };\n\n  const handleExclusiveChange = (event, buttonValue) => {\n    if (!onChange) {\n      return;\n    }\n\n    onChange(event, value === buttonValue ? null : buttonValue);\n  };\n\n  return (\n    <div\n      role=\"group\"\n      className={clsx(\n        classes.root,\n        {\n          [classes.vertical]: orientation === 'vertical',\n        },\n        className,\n      )}\n      ref={ref}\n      {...other}\n    >\n      {Children.map(children, (child) => {\n        if (!isValidElement(child)) {\n          return null;\n        }\n\n        if (isDevelopment()) {\n          if (isFragment(child)) {\n            console.error(\n              [\n                \"Material-UI: The ToggleButtonGroup component doesn't accept a Fragment as a child.\",\n                'Consider providing an array instead.',\n              ].join('\\n'),\n            );\n          }\n        }\n\n        return cloneElement(child, {\n          className: clsx(\n            classes.grouped,\n            classes[`grouped${capitalize(orientation)}`],\n            child.props.className,\n          ),\n          onChange: exclusive ? handleExclusiveChange : handleChange,\n          selected:\n            child.props.selected === undefined\n              ? isValueSelected(child.props.value, value)\n              : child.props.selected,\n          size: child.props.size || size,\n        });\n      })}\n    </div>\n  );\n});\n\nAmbientToggleButtonGroup.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The content of the button.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, only allow one of the child ToggleButton values to be selected.\n   */\n  exclusive: PropTypes.bool,\n  /**\n   * Callback fired when the value changes.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {any} value of the selected buttons. When `exclusive` is true\n   * this is a single value; when false an array of selected values. If no value\n   * is selected and `exclusive` is true the value is null; when false an empty array.\n   */\n  onChange: PropTypes.func,\n  /**\n   * The group orientation (layout flow direction).\n   */\n  orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n  /**\n   * The size of the buttons.\n   */\n  size: PropTypes.oneOf(['large', 'medium', 'small']),\n  /**\n   * The currently selected value within the group or an array of selected\n   * values when `exclusive` is false.\n   *\n   * The value must have reference equality with the option in order to be selected.\n   */\n  value: PropTypes.any,\n};\n\n// export default withStyles(styles, { name: 'MuiToggleButtonGroup' })(AmbientToggleButtonGroup);\n"],"mappings":"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"}