{"version":3,"sources":["../src/components/Menu/MenuShim.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContextualMenuItemType } from '@fluentui/react';\nimport type { IContextualMenuItem } from '@fluentui/react';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport type { MenuDividerProps } from '@fluentui/react-components';\nimport {\n  MenuItem,\n  MenuDivider,\n  MenuGroup,\n  MenuGroupHeader,\n  MenuTrigger,\n  Menu,\n  MenuList,\n  MenuPopover,\n  MenuItemCheckbox,\n} from '@fluentui/react-components';\n\nimport { shimMenuHeaderProps, shimMenuItemCheckboxProps, shimMenuItemProps, shimMenuProps } from './shimMenuProps';\nexport const MenuItemShim = (props: IContextualMenuItem): JSXElement => {\n  if (props.itemType === ContextualMenuItemType.Divider) {\n    const shimProps = shimMenuItemProps(props);\n    return <MenuDivider {...(shimProps as MenuDividerProps)} />;\n  }\n\n  if (props.itemType === ContextualMenuItemType.Section) {\n    const shimProps = shimMenuHeaderProps(props);\n    return (\n      <MenuGroup>\n        <MenuGroupHeader>{shimProps.children}</MenuGroupHeader>\n        {/* //TODO: sectionProps handling */}\n        {props.subMenuProps?.items.map(item => (\n          // key is added through item spread\n          // eslint-disable-next-line react/jsx-key\n          <MenuItemShim {...item} />\n        ))}\n      </MenuGroup>\n    );\n  }\n\n  if (props.canCheck) {\n    const shimProps = shimMenuItemCheckboxProps(props);\n    return <MenuItemCheckbox {...shimProps} />;\n  }\n\n  // Nested Menu to handle submenus\n  if (props.subMenuProps?.items && props.subMenuProps.items.length > 0) {\n    const shimmedMenuProps = shimMenuProps(props.subMenuProps);\n    const shimmedItemProps = shimMenuItemProps(props);\n\n    return (\n      <Menu {...shimmedMenuProps}>\n        <MenuTrigger>\n          <MenuItem {...shimmedItemProps} hasSubmenu />\n        </MenuTrigger>\n        <MenuPopover>\n          <MenuList>\n            {props.subMenuProps.items.map(item => (\n              // key is added through item spread\n              // eslint-disable-next-line react/jsx-key\n              <MenuItemShim {...item} />\n            ))}\n          </MenuList>\n        </MenuPopover>\n      </Menu>\n    );\n  }\n\n  const shimProps = shimMenuItemProps(props);\n  return <MenuItem {...shimProps} />;\n};\n"],"names":["React","ContextualMenuItemType","MenuItem","MenuDivider","MenuGroup","MenuGroupHeader","MenuTrigger","Menu","MenuList","MenuPopover","MenuItemCheckbox","shimMenuHeaderProps","shimMenuItemCheckboxProps","shimMenuItemProps","shimMenuProps","MenuItemShim","props","itemType","Divider","shimProps","Section","children","subMenuProps","items","map","item","canCheck","length","shimmedMenuProps","shimmedItemProps","hasSubmenu"],"mappings":";;;;+BAmBae;;;;;;;iEAnBU,QAAQ;wBAEQ,kBAAkB;iCAclD,6BAA6B;+BAE6D,qBAAkB;AAC5G,qBAAqB,CAACC;QA2BvBA;IA1BJ,IAAIA,MAAMC,QAAQ,KAAKhB,8BAAAA,CAAuBiB,OAAO,EAAE;QACrD,MAAMC,gBAAYN,gCAAAA,EAAkBG;QACpC,OAAA,WAAA,GAAO,OAAA,aAAA,CAACb,4BAAAA,EAAiBgB;IAC3B;IAEA,IAAIH,MAAMC,QAAQ,KAAKhB,8BAAAA,CAAuBmB,OAAO,EAAE;YAMhDJ;QALL,MAAMG,gBAAYR,kCAAAA,EAAoBK;QACtC,OAAA,WAAA,GACE,OAAA,aAAA,CAACZ,0BAAAA,EAAAA,MAAAA,WAAAA,GACC,OAAA,aAAA,CAACC,gCAAAA,EAAAA,MAAiBc,UAAUE,QAAQ,GAEnCL,AAFmC,wBAEnCA,MAAMM,YAAAA,AAAY,MAAA,QAAlBN,yBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,qBAAoBO,KAAK,CAACC,GAAG,CAACC,CAAAA,OAC7B,AACA,mCADmC,MACM;0BACzC,OAAA,aAAA,CAACV,cAAiBU;IAI1B;IAEA,IAAIT,MAAMU,QAAQ,EAAE;QAClB,MAAMP,gBAAYP,wCAAAA,EAA0BI;QAC5C,OAAA,WAAA,GAAO,OAAA,aAAA,CAACN,iCAAAA,EAAqBS;IAC/B;IAEA,iCAAiC;IACjC,IAAIH,CAAAA,CAAAA,sBAAAA,MAAMM,YAAAA,AAAY,MAAA,QAAlBN,wBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,oBAAoBO,KAAAA,AAAK,KAAIP,MAAMM,YAAY,CAACC,KAAK,CAACI,MAAM,GAAG,GAAG;QACpE,MAAMC,uBAAmBd,4BAAAA,EAAcE,MAAMM,YAAY;QACzD,MAAMO,mBAAmBhB,oCAAAA,EAAkBG;QAE3C,OAAA,WAAA,GACE,OAAA,aAAA,CAACT,qBAAAA,EAASqB,kBAAAA,WAAAA,GACR,OAAA,aAAA,CAACtB,4BAAAA,EAAAA,MAAAA,WAAAA,GACC,OAAA,aAAA,CAACJ,yBAAAA,EAAAA;YAAU,GAAG2B,gBAAgB;YAAEC,YAAAA;2BAElC,OAAA,aAAA,CAACrB,4BAAAA,EAAAA,MAAAA,WAAAA,GACC,OAAA,aAAA,CAACD,yBAAAA,EAAAA,MACEQ,MAAMM,YAAY,CAACC,KAAK,CAACC,GAAG,CAACC,CAAAA,OAC5B,AACA,mCADmC,MACM;0BACzC,OAAA,aAAA,CAACV,cAAiBU;IAM9B;IAEA,MAAMN,gBAAYN,gCAAAA,EAAkBG;IACpC,OAAA,WAAA,GAAO,OAAA,aAAA,CAACd,yBAAAA,EAAaiB;AACvB,EAAE"}