{"version":3,"file":"ActionMenu.mjs","sources":["../../../../../../../../web/src/adminPortal/components/ActionMenu.tsx"],"sourcesContent":["import { MoreVert } from '@mui/icons-material';\nimport { styled } from '@mui/material';\nimport React, { useCallback } from 'react';\n\nimport { TableActionCoreProps } from '../shared/components/TableActions';\nimport { Action, IconButtonMenu } from './IconButtonMenu';\n\nexport { type Action } from './IconButtonMenu';\n\nexport interface ActionMenuProps<T> {\n  actions: readonly Readonly<Action<T>>[];\n  item: T;\n  idPrefix: string;\n}\n\nconst StyledDiv = styled('div')({ display: 'flex', width: '100%', justifyContent: 'center' });\n\nexport const ActionMenu = <T,>({ actions, item, idPrefix }: ActionMenuProps<T>) => {\n  return <IconButtonMenu actions={actions} item={item} idPrefix={idPrefix} icon={<MoreVert fontSize=\"large\" />} />;\n};\n\ninterface UseActionMenuParams<T> {\n  actions: readonly Readonly<Action<T>>[];\n  idPrefix: string;\n  getId: (item: T) => string;\n}\n\nexport const useActionMenu = <T,>({ actions, idPrefix, getId }: UseActionMenuParams<T>) => {\n  const getItemActionProps = useCallback(\n    (item: T): TableActionCoreProps => {\n      const hasVisibleActions = actions.some(({ isVisible = true }) =>\n        typeof isVisible === 'function' ? isVisible(item) : isVisible,\n      );\n\n      if (!hasVisibleActions) {\n        return {};\n      }\n\n      return {\n        customAction: (\n          <StyledDiv>\n            <ActionMenu actions={actions} item={item} idPrefix={`${idPrefix}-action-menu-${getId(item)}`} />\n          </StyledDiv>\n        ),\n      };\n    },\n    [actions, getId, idPrefix],\n  );\n\n  return { getItemActionProps };\n};\n"],"names":["StyledDiv","styled","display","width","justifyContent","ActionMenu","actions","item","idPrefix","React","IconButtonMenu","icon","MoreVert","fontSize","useActionMenu","getId","getItemActionProps","useCallback","hasVisibleActions","some","isVisible","customAction"],"mappings":";;;;;;AAeA,MAAMA,SAAAA,GAAYC,OAAO,KAAA,CAAA,CAAO;IAAEC,OAAAA,EAAS,MAAA;IAAQC,KAAAA,EAAO,MAAA;IAAQC,cAAAA,EAAgB;AAAS,CAAA,CAAA;AAEpF,MAAMC,aAAa,CAAK,EAAEC,OAAO,EAAEC,IAAI,EAAEC,QAAQ,EAAsB,GAAA;AAC5E,IAAA,qBAAOC,EAAA,CAAA,aAAA,CAACC,cAAAA,EAAAA;QAAeJ,OAAAA,EAASA,OAAAA;QAASC,IAAAA,EAAMA,IAAAA;QAAMC,QAAAA,EAAUA,QAAAA;AAAUG,QAAAA,IAAAA,gBAAMF,EAAA,CAAA,aAAA,CAACG,QAAAA,EAAAA;YAASC,QAAAA,EAAS;;;AACpG;AAQO,MAAMC,gBAAgB,CAAK,EAAER,OAAO,EAAEE,QAAQ,EAAEO,KAAK,EAA0B,GAAA;IACpF,MAAMC,kBAAAA,GAAqBC,EACzB,CAACV,IAAAA,GAAAA;AACC,QAAA,MAAMW,iBAAAA,GAAoBZ,OAAAA,CAAQa,IAAI,CAAC,CAAC,EAAEC,SAAAA,GAAY,IAAI,EAAE,GAC1D,OAAOA,SAAAA,KAAc,UAAA,GAAaA,UAAUb,IAAAA,CAAAA,GAAQa,SAAAA,CAAAA;AAGtD,QAAA,IAAI,CAACF,iBAAAA,EAAmB;AACtB,YAAA,OAAO,EAAC;AACV,QAAA;QAEA,OAAO;YACLG,YAAAA,gBACEZ,EAAA,CAAA,aAAA,CAACT,+BACCS,EAAA,CAAA,aAAA,CAACJ,UAAAA,EAAAA;gBAAWC,OAAAA,EAASA,OAAAA;gBAASC,IAAAA,EAAMA,IAAAA;AAAMC,gBAAAA,QAAAA,EAAU,CAAA,EAAGA,QAAAA,CAAS,aAAa,EAAEO,MAAMR,IAAAA,CAAAA,CAAAA;;AAG3F,SAAA;IACF,CAAA,EACA;AAACD,QAAAA,OAAAA;AAASS,QAAAA,KAAAA;AAAOP,QAAAA;AAAS,KAAA,CAAA;IAG5B,OAAO;AAAEQ,QAAAA;AAAmB,KAAA;AAC9B;;;;"}