{"version":3,"file":"SplitButton.mjs","names":["React","Children","useCallback","usePopupState","bindTrigger","bindPopper","useId","Button","ButtonGroup","Popper","Grow","Paper","ClickAwayListener","MenuList","makeStyles","ArrowDropDown","ArrowDropDownIcon","useStyles","theme","arrowButtonRoot","padding","menu","zIndex","tooltip","paper","name","SplitButton","props","classes","popupName","color","size","variant","label","ariaLabel","children","popupId","popupState","firstItem","toArray","setAnchorEl","ref","onClick","isOpen","undefined","TransitionProps","placement","transformOrigin","close"],"sources":["../../../src/utilities/aggrid/SplitButton.jsx"],"sourcesContent":["import React, { Children, useCallback } from 'react';\nimport {\n  usePopupState,\n  bindTrigger,\n  bindPopper,\n} from 'material-ui-popup-state/hooks';\nimport useId from '../../UI/widgets/utils/useId';\nimport {\n  Button,\n  ButtonGroup,\n  Popper,\n  Grow,\n  Paper,\n  ClickAwayListener,\n  MenuList,\n  makeStyles,\n} from '@material-ui/core';\nimport { ArrowDropDown as ArrowDropDownIcon } from '@material-ui/icons';\n\nconst useStyles = makeStyles(\n  theme => ({\n    arrowButtonRoot: {\n      padding: 0,\n    },\n    menu: {\n      zIndex: theme.zIndex.tooltip,\n    },\n    paper: {},\n  }),\n  { name: 'SplitButton' }\n);\n\n/**\n * https://material-ui.com/components/button-group/#split-button\n */\nexport const SplitButton = props => {\n  const classes = useStyles(props);\n  const {\n    popupName,\n    color,\n    size,\n    variant,\n    label,\n    'aria-label': ariaLabel,\n    children,\n  } = props;\n  const popupId = useId(popupName);\n  const popupState = usePopupState({ variant: 'popper', popupId });\n\n  const firstItem = Children.toArray(children)[0];\n\n  const setAnchorEl = useCallback(ref => {\n    if (ref) popupState.setAnchorEl(ref);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  return (\n    <React.Fragment>\n      <ButtonGroup\n        variant={variant}\n        color={color}\n        size={size}\n        ref={setAnchorEl}\n        aria-label={ariaLabel}\n      >\n        <Button onClick={firstItem?.props?.onClick}>\n          {label || firstItem?.props?.children}\n        </Button>\n        <Button\n          {...bindTrigger(popupState)}\n          className={classes.arrowButtonRoot}\n          color={color}\n          size=\"small\"\n          aria-expanded={popupState.isOpen ? true : undefined}\n        // @fixme Allow labels for this button\n        >\n          <ArrowDropDownIcon />\n        </Button>\n      </ButtonGroup>\n      <Popper\n        {...bindPopper(popupState)}\n        role={undefined}\n        transition\n        disablePortal\n        className={classes.menu}\n      >\n        {({ TransitionProps, placement }) => (\n          <Grow\n            {...TransitionProps}\n            style={{\n              transformOrigin:\n                placement === 'bottom' ? 'center top' : 'center bottom',\n            }}\n          >\n            <Paper className={classes.paper}>\n              <ClickAwayListener onClickAway={popupState.close}>\n                <MenuList /*id={popupState.popupId}*/>{children}</MenuList>\n              </ClickAwayListener>\n            </Paper>\n          </Grow>\n        )}\n      </Popper>\n    </React.Fragment>\n  );\n};\n"],"mappings":";;;;;;AAmBA,MAAMiB,YAAYH,YAChBI,WAAU;CACRC,iBAAiB,EACfC,SAAS,GACV;CACDC,MAAM,EACJC,QAAQJ,MAAMI,OAAOC,SACtB;CACDC,OAAO,EAAC;CACT,GACD,EAAEC,MAAM,eACV,CAAC;;;;AAKD,MAAaC,eAAcC,UAAS;CAClC,MAAMC,UAAUX,UAAUU,MAAM;CAChC,MAAM,EACJE,WACAC,OACAC,MACAC,SACAC,OACA,cAAcC,WACdC,aACER;CAEJ,MAAMU,aAAalC,cAAc;EAAE6B,SAAS;EAAUI,SADtC9B,MAAMuB,UAAU;EAC+B,CAAC;CAEhE,MAAMS,YAAYrC,SAASsC,QAAQJ,SAAS,CAAC;CAE7C,MAAMK,cAActC,aAAYuC,QAAO;AACrC,MAAIA,IAAKJ,YAAWG,YAAYC,IAAI;IAEnC,EAAE,CAAC;AAEN,QACE,sBAAA,cAAC,MAAM,UAAA,MACL,sBAAA,cAAC,aAAD;EACWT;EACFF;EACDC;EACN,KAAKS;EACL,cAAYN;EAeD,EAbX,sBAAA,cAAC,QAAD,EAAQ,SAASI,WAAWX,OAAOe,SAE3B,EADLT,SAASK,WAAWX,OAAOQ,SACtB,EACR,sBAAA,cAAC,QAAD;EACE,GAAI/B,YAAYiC,WAAW;EAC3B,WAAWT,QAAQT;EACZW;EACP,MAAK;EACL,iBAAeO,WAAWM,SAAS,OAAOC,KAAAA;EAIpC,EADN,sBAAA,cAAC,eAAA,KAAiB,CACZ,CACG,EACb,sBAAA,cAAC,QAAD;EACE,GAAIvC,WAAWgC,WAAW;EAC1B,MAAMO,KAAAA;EACN,YAAA;EACA,eAAA;EACA,WAAWhB,QAAQP;EAiBb,GAfJ,EAAEwB,iBAAiBC,gBACnB,sBAAA,cAAC,MAAD;EACE,GAAID;EACJ,OAAO,EACLE,iBACED,cAAc,WAAW,eAAe,iBAC3C;EAQJ,EANG,sBAAA,cAAC,OAAD,EAAO,WAAWlB,QAAQJ,OAInB,EAHL,sBAAA,cAAC,mBAAD,EAAmB,aAAaa,WAAWW,OAExB,EADjB,sBAAA,cAAC,UAAA,MAAsCb,SAAmB,CACzC,CACd,CAEV,CACK,CACO"}