{"version":3,"file":"AmbientToggleButtonGroupDefault.mjs","names":["React","forwardRef","Children","isValidElement","cloneElement","isFragment","PropTypes","clsx","isValueSelected","withStyles","capitalize","isDevelopment","styles","theme","root","display","padding","vertical","flexDirection","grouped","groupedHorizontal","borderRadius","paddingRight","marginTop","groupedVertical","AmbientToggleButtonGroupDefault","AmbientToggleButton","props","ref","$","_c","children","className","classes","onChange","other","t0","t1","t2","value","exclusive","orientation","size","undefined","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","AmbientToggleButtonGroupDefaultExport","name"],"sources":["../../../../src/UI/inputs/buttons/AmbientToggleButtonGroupDefault.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 { withStyles } from '@material-ui/core/styles';\nimport { capitalize } from '@material-ui/core/utils';\nimport { isDevelopment } from '../../../utilities/env';\n\nexport const styles = (theme) => ({\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    // '&:not(:first-child)': {\n    //   marginLeft: -1,\n    //   borderLeft: '1px solid ',\n    //   borderTopLeftRadius: 25,\n    //   borderBottomLeftRadius: 25,\n    // },\n    // '&:not(:last-child)': {\n    //   borderTopRightRadius: 25,\n    //   borderBottomRightRadius: 25,\n    // },\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  /* Styles applied to the children if `orientation=\"vertical\"`. */\n  groupedVertical: {\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\nconst AmbientToggleButtonGroupDefault = 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 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        // eslint-disable-next-line custom-rules/no-process-env\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\nAmbientToggleButtonGroupDefault.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/**\n * Explicitly cast the HOC to any to avoid non-portable inferred React types in declaration output.\n * @type {any}\n */\nconst AmbientToggleButtonGroupDefaultExport = withStyles(styles, { name: 'MuiToggleButtonGroup' })(AmbientToggleButtonGroupDefault);\n\nexport default AmbientToggleButtonGroupDefaultExport;\n"],"mappings":"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"}