{"version":3,"file":"MenuOpener.mjs","names":["Menu","bindMenu","bindTrigger","usePopupState","React","cloneElement","ElementType","FC","ReactElement","ReactNode","useCallback","MenuOpener","t0","$","_c","MenuComponent","t1","button","menuProps","children","undefined","t2","Symbol","for","variant","popupId","popupState","close","t3","e","isButton","target","matches","isDropdownButton","closePopup","click","t4","t5","t6","t7"],"sources":["../../../../src/shell/ui/profile/MenuOpener.jsx"],"sourcesContent":["import { Menu } from '@material-ui/core';\nimport {\n  bindMenu,\n  bindTrigger,\n  usePopupState,\n} from 'material-ui-popup-state/hooks';\nimport React, {\n  cloneElement,\n  ElementType,\n  FC,\n  ReactElement,\n  ReactNode,\n  useCallback,\n} from 'react';\n\n/**\n * Helper to handle open a menu when a button is clicked\n */\nexport const MenuOpener = ({\n  MenuComponent = Menu,\n  name,\n  button,\n  menuProps,\n  children,\n}) => {\n  /* @fixme useId as string to bypass error */\n  const popupId = 'useId(name)';\n  const popupState = usePopupState({ variant: 'popover', popupId });\n  const { close } = popupState;\n\n  const click = useCallback(\n    e => {\n      const isButton = e.target.matches(\n        'a, button, input[type=\"button\"], input[type=\"image\"], [role=\"button\"], [role=\"link\"], a *, button *, [role=\"button\"] *, [role=\"link\"] *'\n      );\n      const isDropdownButton = e.target.matches(\n        '.MuiAutocomplete-endAdornment *'\n      );\n\n      const closePopup = isButton && !isDropdownButton;\n\n      if (closePopup) {\n        close();\n      }\n    },\n    [close]\n  );\n\n  return (\n    <>\n      {cloneElement(button, bindTrigger(popupState))}\n      <MenuComponent {...menuProps} {...bindMenu(popupState)} onClick={click}>\n        {children}\n      </MenuComponent>\n    </>\n  );\n};\n\nexport default MenuOpener;\n"],"mappings":";;;;;;;;AAkBA,MAAaW,cAAaC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAC,MAAA,EAAAC,eAAAC,IAAAC,QAAAC,WAAAC,aAAAP;CACzB,MAAAG,gBAAAC,OAAAI,KAAAA,IAAApB,OAAAgB;CAAoB,IAAAK;AAAA,KAAAR,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAQaF,OAAA;GAAAG,SAAW;GAASC,SADrC;GACgD;AAAAZ,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAhE,MAAAa,aAAmBvB,cAAckB,GAAgC;CACjE,MAAA,EAAAM,UAAkBD;CAAW,IAAAE;AAAA,KAAAf,EAAA,OAAAc,OAAA;AAG3BC,QAAAC,MAAA;GACE,MAAAC,WAAiBD,EAACE,OAAOC,QACvB,sJACD;GACD,MAAAC,mBAAyBJ,EAACE,OAAOC,QAC/B,kCACD;AAID,OAFmBF,YAAA,CAAaG,iBAG9BN,QAAO;;AAEVd,IAAA,KAAAc;AAAAd,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAdH,MAAAsB,QAAcP;CAgBZ,IAAAQ;AAAA,KAAAvB,EAAA,OAAAI,UAAAJ,EAAA,OAAAa,YAAA;AAIGU,OAAA/B,aAAaY,QAAQf,YAAYwB,WAAW,CAAC;AAAAb,IAAA,KAAAI;AAAAJ,IAAA,KAAAa;AAAAb,IAAA,KAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,OAAAa,YAAA;AACZW,OAAApC,SAASyB,WAAW;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,OAAAE,iBAAAF,EAAA,OAAAM,YAAAN,EAAA,QAAAsB,SAAAtB,EAAA,QAAAK,aAAAL,EAAA,QAAAwB,IAAA;AAAtDC,OAAA,sBAAA,cAAC,eAAD;GAAc,GAAKpB;GAAS,GAAMmB;GAA+BF,SAAAA;GAEjD,EADbhB,SACa;AAAAN,IAAA,KAAAE;AAAAF,IAAA,KAAAM;AAAAN,IAAA,MAAAsB;AAAAtB,IAAA,MAAAK;AAAAL,IAAA,MAAAwB;AAAAxB,IAAA,MAAAyB;OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAuB,MAAAvB,EAAA,QAAAyB,IAAA;AAJlBC,OAAA,sBAAA,cAAA,MAAA,UAAA,MACGH,IACDE,GAGC;AAAAzB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;OAAAA,MAAA1B,EAAA;AAAA,QALH0B"}