{"version":3,"file":"Switch.mjs","sources":["../../../../../../../../web/src/adminPortal/components/Switch.tsx"],"sourcesContent":["import { FormControlLabel, styled, Switch as MUISwitch, switchClasses } from '@mui/material';\nimport React, { ChangeEventHandler, FC, MouseEventHandler } from 'react';\n\nconst StyledFormControlLabel = styled(FormControlLabel)(({ theme }) => ({\n  display: 'flex',\n  alignItems: 'center',\n  width: 'fit-content',\n  color: theme.styleConfig.colors.primary,\n}));\n\nconst StyledSwitch = styled(MUISwitch)(({ theme }) => {\n  const primary = theme.styleConfig.buttons.primary.backgroundColor;\n  const secondary = theme.styleConfig.colors.secondary;\n  const containerBackground = theme.styleConfig.container.backgroundColor;\n\n  return {\n    width: 24,\n    height: 24,\n    padding: 0,\n    margin: '0 8px 0 12px',\n    alignItems: 'center',\n    [`.${switchClasses.switchBase}`]: {\n      transition: theme.transitions.create(['opacity', 'background-color']),\n      marginLeft: -5,\n      '&:hover': {\n        backgroundColor: 'transparent',\n      },\n      [`&.${switchClasses.checked}`]: {\n        marginLeft: -15,\n        '&:hover': {\n          backgroundColor: 'transparent',\n        },\n        [`& + .${switchClasses.track}`]: {\n          opacity: 1,\n          backgroundColor: primary,\n        },\n        [`.${switchClasses.thumb}`]: {\n          color: containerBackground,\n        },\n      },\n      [`&.${switchClasses.disabled}`]: {\n        [`& .${switchClasses.thumb}`]: {\n          color: secondary,\n        },\n        [`& + .${switchClasses.track}`]: {\n          border: '2.5px solid',\n          borderColor: secondary,\n          opacity: 1,\n          backgroundColor: containerBackground,\n        },\n        [`&.${switchClasses.checked}`]: {\n          [`& + .${switchClasses.track}`]: {\n            opacity: 1,\n            backgroundColor: secondary,\n          },\n          [`& .${switchClasses.thumb}`]: {\n            color: containerBackground,\n          },\n        },\n      },\n    },\n    [`.${switchClasses.thumb}`]: {\n      height: 6,\n      width: 6,\n      boxShadow: 'none',\n      color: primary,\n      [`&.${switchClasses.checked}`]: {\n        color: containerBackground,\n      },\n    },\n    [`.${switchClasses.track}`]: {\n      boxSizing: 'content-box',\n      border: '2.5px solid',\n      borderColor: primary,\n      backgroundColor: containerBackground,\n      borderRadius: 24 / 2,\n      height: 8,\n      opacity: 1,\n    },\n  };\n});\n\nexport type SwitchProps = {\n  checked?: boolean;\n  label: string;\n  onChange?(value: boolean): void;\n  readOnly?: boolean;\n  subtext?: string;\n};\n\nconst stopPropagation: MouseEventHandler<HTMLButtonElement> = (e) => {\n  e.stopPropagation();\n};\n\nexport const Switch: FC<SwitchProps> = ({ checked, label, onChange, readOnly }) => {\n  const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n    onChange?.(e.target.checked);\n  };\n\n  return (\n    <StyledFormControlLabel\n      control={\n        <StyledSwitch\n          aria-label={`${checked ? 'Disable' : 'Enable'} ${label}`}\n          checked={checked}\n          disableFocusRipple\n          disableRipple\n          disableTouchRipple\n          disabled={readOnly}\n          onChange={handleChange}\n          onClick={stopPropagation}\n        />\n      }\n      disabled={readOnly}\n      label={label}\n    />\n  );\n};\n"],"names":["StyledFormControlLabel","styled","FormControlLabel","theme","display","alignItems","width","color","styleConfig","colors","primary","StyledSwitch","MUISwitch","buttons","backgroundColor","secondary","containerBackground","container","height","padding","margin","switchClasses","switchBase","transition","transitions","create","marginLeft","checked","track","opacity","thumb","disabled","border","borderColor","boxShadow","boxSizing","borderRadius","stopPropagation","e","Switch","label","onChange","readOnly","handleChange","target","React","control","aria-label","disableFocusRipple","disableRipple","disableTouchRipple","onClick"],"mappings":"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"}